--- EV/EV.xs 2009/07/19 21:59:55 1.132 +++ EV/EV.xs 2009/08/09 13:30:41 1.133 @@ -580,11 +580,18 @@ ev_io *io (SV *fh, int events, SV *cb) ALIAS: io_ns = 1 + _ae_io = 2 CODE: { int fd = s_fileno (fh, events & EV_WRITE); CHECK_FD (fh, fd); + if (ix == 2) + { + ix = 0; + events = events ? EV_WRITE : EV_READ; + } + RETVAL = e_new (sizeof (ev_io), cb, default_loop_sv); RETVAL->fh = newSVsv (fh); ev_io_set (RETVAL, fd, events);