ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libev/ev_linuxaio.c
(Generate patch)

Comparing libev/ev_linuxaio.c (file contents):
Revision 1.37 by root, Wed Jun 26 07:20:09 2019 UTC vs.
Revision 1.38 by root, Mon Jul 1 19:56:30 2019 UTC

299 299
300 if (iocb->io.aio_buf) 300 if (iocb->io.aio_buf)
301 { 301 {
302 evsys_io_cancel (linuxaio_ctx, &iocb->io, (struct io_event *)0); 302 evsys_io_cancel (linuxaio_ctx, &iocb->io, (struct io_event *)0);
303 /* on relevant kernels, io_cancel fails with EINPROGRES if everything is fine */ 303 /* on relevant kernels, io_cancel fails with EINPROGRES if everything is fine */
304 assert (("libev: linuxaio unexpected io_cancel failed", errno == EINPROGRESS)); 304 assert (("libev: linuxaio unexpected io_cancel failed", errno == EINPROGRESS || errno == EINTR));
305 } 305 }
306 306
307 if (nev) 307 if (nev)
308 { 308 {
309 iocb->io.aio_buf = 309 iocb->io.aio_buf =
553 assert (("libev: event loop rejected bad fd", errno != EBADF)); 553 assert (("libev: event loop rejected bad fd", errno != EBADF));
554 fd_kill (EV_A_ linuxaio_submits [submitted]->aio_fildes); 554 fd_kill (EV_A_ linuxaio_submits [submitted]->aio_fildes);
555 555
556 res = 1; /* skip this iocb */ 556 res = 1; /* skip this iocb */
557 } 557 }
558 else if (errno == EINTR)
559 /* silently ignored */;
558 else 560 else
559 ev_syserr ("(libev) linuxaio io_submit"); 561 ev_syserr ("(libev) linuxaio io_submit");
560 562
561 submitted += res; 563 submitted += res;
562 } 564 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines