diff --git a/include/types/fd.h b/include/types/fd.h index c6e47f203..c9b50c2e5 100644 --- a/include/types/fd.h +++ b/include/types/fd.h @@ -51,11 +51,6 @@ enum { #define FD_POLL_DATA (FD_POLL_IN | FD_POLL_OUT) #define FD_POLL_STICKY (FD_POLL_ERR | FD_POLL_HUP) -/* flags that an I/O callback may return */ -#define FD_WAIT_READ 0x01 -#define FD_WAIT_WRITE 0x02 -#define FD_WAIT_BOTH (FD_WAIT_READ|FD_WAIT_WRITE) - /* bit values for fdtab[fd]->flags. Most of them are used to hold a value * consecutive to a behaviour change. */ diff --git a/src/ev_sepoll.c b/src/ev_sepoll.c index 506ab3103..7c1cf4c53 100644 --- a/src/ev_sepoll.c +++ b/src/ev_sepoll.c @@ -466,19 +466,8 @@ REGPRM2 static void _do_poll(struct poller *p, int exp) if ((eo & FD_EV_MASK_W) == FD_EV_SPEC_W) fdtab[fd].ev |= FD_POLL_OUT; - if (fdtab[fd].iocb && fdtab[fd].owner && fdtab[fd].ev) { - int wait = fdtab[fd].iocb(fd); - - /* FIXME: warning, this will not work if both old and new - * callbacks are used at the same time ! This is only a - * temporary measure during the migration. - */ - if (wait & FD_WAIT_READ) - fdtab[fd].spec.e ^= (FD_EV_WAIT_R ^ FD_EV_SPEC_R); - - if (wait & FD_WAIT_WRITE) - fdtab[fd].spec.e ^= (FD_EV_WAIT_W ^ FD_EV_SPEC_W); - } + if (fdtab[fd].iocb && fdtab[fd].owner && fdtab[fd].ev) + fdtab[fd].iocb(fd); /* one callback might already have closed the fd by itself */ if (!fdtab[fd].owner)