Prevented uv adapter from calling write when context has been freed
This commit is contained in:
parent
5f98e1d35d
commit
cbb956567b
@ -20,10 +20,10 @@ static void redisLibuvPoll(uv_poll_t* handle, int status, int events) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (events & UV_READABLE) {
|
if (p->context != NULL && (events & UV_READABLE)) {
|
||||||
redisAsyncHandleRead(p->context);
|
redisAsyncHandleRead(p->context);
|
||||||
}
|
}
|
||||||
if (events & UV_WRITABLE) {
|
if (p->context != NULL && (events & UV_WRITABLE)) {
|
||||||
redisAsyncHandleWrite(p->context);
|
redisAsyncHandleWrite(p->context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -83,6 +83,7 @@ static void on_close(uv_handle_t* handle) {
|
|||||||
static void redisLibuvCleanup(void *privdata) {
|
static void redisLibuvCleanup(void *privdata) {
|
||||||
redisLibuvEvents* p = (redisLibuvEvents*)privdata;
|
redisLibuvEvents* p = (redisLibuvEvents*)privdata;
|
||||||
|
|
||||||
|
p->context = NULL; // indicate that context might no longer exist
|
||||||
uv_close((uv_handle_t*)&p->handle, on_close);
|
uv_close((uv_handle_t*)&p->handle, on_close);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user