--- IO-AIO/schmorp.h 2009/07/26 08:28:36 1.8 +++ IO-AIO/schmorp.h 2010/03/30 13:53:53 1.10 @@ -446,8 +446,10 @@ if (dup2 (epn.fd [0], epp->fd [0]) < 0) croak ("unable to dup over old event pipe"); /* should not croak */ - if (epp->fd [1] != epp->fd [0]) - close (epn.fd [0]); + close (epn.fd [0]); + + if (epn.fd [0] == epn.fd [1]) + epn.fd [1] = epp->fd [0]; epn.fd [0] = epp->fd [0]; } @@ -478,7 +480,7 @@ pfd.fd = s_epipe_fd (epp); pfd.events = POLLIN; - return poll (&pfd, 1, 0); + return poll (&pfd, 1, -1); #endif }