diff --git a/ev_linuxaio.c b/ev_linuxaio.c index 7c650e0..06d8a30 100644 --- a/ev_linuxaio.c +++ b/ev_linuxaio.c @@ -150,7 +150,7 @@ linuxaio_modify (EV_P_ int fd, int oev, int nev) struct aniocb *iocb = linuxaio_iocbps [fd]; if (iocb->io.aio_buf) - ev_io_cancel (linuxaio_ctx, &iocb->io, (struct io_event *)0); + ev_io_cancel (linuxaio_ctx, &iocb->io, (struct io_event *)0); /* always fails in relevant kernels */ if (nev) { @@ -313,6 +313,7 @@ linuxaio_init (EV_P_ int flags) if (ev_linux_version () < 0x041200) /* 4.18 introduced IOCB_CMD_POLL */ return 0; + linuxaio_ctx = 0; if (ev_io_setup (EV_LINUXAIO_DEPTH, &linuxaio_ctx) < 0) return 0; @@ -344,6 +345,7 @@ linuxaio_fork (EV_P) /* TODO: verify and test */ linuxaio_destroy (EV_A); + linuxaio_ctx = 0; while (ev_io_setup (EV_LINUXAIO_DEPTH, &linuxaio_ctx) < 0) ev_syserr ("(libev) io_setup");