diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-05-03 13:16:30 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-05-03 13:16:30 +0100 |
commit | d9282bbd545d1a1978b29a4d63b161cce9ccf8ed (patch) | |
tree | 6fd99d926f9cd9eabcd338ab7e5fd1795a65e3de /src/lua/lua_redis.c | |
parent | cb9a80f16557f45514e1a3641ad26f3b168637fa (diff) | |
download | rspamd-d9282bbd545d1a1978b29a4d63b161cce9ccf8ed.tar.gz rspamd-d9282bbd545d1a1978b29a4d63b161cce9ccf8ed.zip |
[Fix] One more fix in redis destructor
Diffstat (limited to 'src/lua/lua_redis.c')
-rw-r--r-- | src/lua/lua_redis.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lua/lua_redis.c b/src/lua/lua_redis.c index 1eedde277..55a85d22d 100644 --- a/src/lua/lua_redis.c +++ b/src/lua/lua_redis.c @@ -135,6 +135,7 @@ lua_redis_dtor (struct lua_redis_ctx *ctx) { struct lua_redis_userdata *ud; struct lua_redis_specific_userdata *cur, *tmp; + gboolean is_connected = FALSE; if (ctx->async) { ud = &ctx->d.async; @@ -149,10 +150,14 @@ lua_redis_dtor (struct lua_redis_ctx *ctx) ctx->ref.refcount = 100500; redisAsyncFree (ud->ctx); ctx->ref.refcount = 0; + is_connected = TRUE; } LL_FOREACH_SAFE (ud->specific, cur, tmp) { lua_redis_free_args (cur->args, cur->nargs); - event_del (&cur->timeout); + + if (is_connected) { + event_del (&cur->timeout); + } if (cur->cbref != -1) { luaL_unref (ud->L, LUA_REGISTRYINDEX, cur->cbref); |