|
|
|
@ -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"); |
|
|
|
|
|
|
|
|
|