summaryrefslogtreecommitdiff
path: root/extra/hiredis/libev.h
diff options
context:
space:
mode:
Diffstat (limited to 'extra/hiredis/libev.h')
-rw-r--r--extra/hiredis/libev.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/extra/hiredis/libev.h b/extra/hiredis/libev.h
index 4b36898..3246820 100644
--- a/extra/hiredis/libev.h
+++ b/extra/hiredis/libev.h
@@ -17,9 +17,11 @@ void libevRedisReadEvent(struct ev_loop *loop, ev_io *watcher, int revents) {
libevRedisEvents *e = watcher->data;
if (redisBufferRead(e->context) == REDIS_ERR) {
+ redisDisconnect(e->context);
e->err(e->context);
} else {
if (redisProcessCallbacks(e->context) == REDIS_ERR) {
+ redisDisconnect(e->context);
e->err(e->context);
}
}
@@ -31,7 +33,7 @@ void libevRedisWriteEvent(struct ev_loop *loop, ev_io *watcher, int revents) {
int done = 0;
if (redisBufferWrite(e->context, &done) == REDIS_ERR) {
- ev_io_stop(e->loop,&e->wev);
+ redisDisconnect(e->context);
e->err(e->context);
} else {
/* Stop firing the write event when done */