summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2012-05-11 10:45:12 +0200
committerantirez <antirez@gmail.com>2012-05-12 09:37:09 +0200
commitb07446173251bf99d8fb088c3ab081aa76800665 (patch)
treecd1a173f39048b2e3211f0c09bacc6ab32a0d932
parentf1af84d7143636602555e5d2d949bd5c9c6f6a69 (diff)
downloadredis-b07446173251bf99d8fb088c3ab081aa76800665.tar.gz
redis-cli pipe mode: handle EAGAIN while writing to socket.
-rw-r--r--src/redis-cli.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/redis-cli.c b/src/redis-cli.c
index a99670f47..4c7f707e5 100644
--- a/src/redis-cli.c
+++ b/src/redis-cli.c
@@ -962,9 +962,13 @@ static void pipeMode(void) {
ssize_t nwritten = write(fd,obuf+obuf_pos,obuf_len);
if (nwritten == -1) {
- fprintf(stderr, "Error writing to the server: %s\n",
- strerror(errno));
- exit(1);
+ if (errno != EAGAIN) {
+ fprintf(stderr, "Error writing to the server: %s\n",
+ strerror(errno));
+ exit(1);
+ } else {
+ nwritten = 0;
+ }
}
obuf_len -= nwritten;
obuf_pos += nwritten;