Commit bf161d99 authored by Fabien MARTY's avatar Fabien MARTY
Browse files

Try again later for EINTR errors (see issue #99)

parent 3c46b13a
...@@ -1077,7 +1077,7 @@ int redisBufferRead(redisContext *c) { ...@@ -1077,7 +1077,7 @@ int redisBufferRead(redisContext *c) {
nread = read(c->fd,buf,sizeof(buf)); nread = read(c->fd,buf,sizeof(buf));
if (nread == -1) { if (nread == -1) {
if (errno == EAGAIN && !(c->flags & REDIS_BLOCK)) { if ((errno == EAGAIN && !(c->flags & REDIS_BLOCK)) || (errno == EINTR)) {
/* Try again later */ /* Try again later */
} else { } else {
__redisSetError(c,REDIS_ERR_IO,NULL); __redisSetError(c,REDIS_ERR_IO,NULL);
...@@ -1114,7 +1114,7 @@ int redisBufferWrite(redisContext *c, int *done) { ...@@ -1114,7 +1114,7 @@ int redisBufferWrite(redisContext *c, int *done) {
if (sdslen(c->obuf) > 0) { if (sdslen(c->obuf) > 0) {
nwritten = write(c->fd,c->obuf,sdslen(c->obuf)); nwritten = write(c->fd,c->obuf,sdslen(c->obuf));
if (nwritten == -1) { if (nwritten == -1) {
if (errno == EAGAIN && !(c->flags & REDIS_BLOCK)) { if ((errno == EAGAIN && !(c->flags & REDIS_BLOCK)) || (errno == EINTR)) {
/* Try again later */ /* Try again later */
} else { } else {
__redisSetError(c,REDIS_ERR_IO,NULL); __redisSetError(c,REDIS_ERR_IO,NULL);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment