lib: Don't close children on mere EAGAINs, but fail and wait for them.
authorFredrik Tolf <fredrik@dolda2000.com>
Tue, 15 Jan 2013 07:22:26 +0000 (08:22 +0100)
committerFredrik Tolf <fredrik@dolda2000.com>
Tue, 15 Jan 2013 07:22:26 +0000 (08:22 +0100)
lib/cf.c

index 96181ee..86658f8 100644 (file)
--- a/lib/cf.c
+++ b/lib/cf.c
@@ -319,8 +319,10 @@ static int stdhandle(struct child *ch, struct hthead *req, int fd, void (*chinit
                    return(0);
            }
            flog(LOG_ERR, "could not pass on request to child %s: %s", ch->name, strerror(errno));
-           close(i->fd);
-           i->fd = -1;
+           if(errno != EAGAIN) {
+               close(i->fd);
+               i->fd = -1;
+           }
            return(-1);
        }
     } else if(i->type == CH_FORK) {