lib: Don't close children on mere EAGAINs, but fail and wait for them.
[ashd.git] / 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) {