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.49 by root, Tue Jul 9 00:04:35 2019 UTC vs.
Revision 1.50 by root, Tue Jul 9 06:30:14 2019 UTC

310 uint32_t gen = ev->data >> 32; 310 uint32_t gen = ev->data >> 32;
311 int res = ev->res; 311 int res = ev->res;
312 312
313 assert (("libev: iocb fd must be in-bounds", fd >= 0 && fd < anfdmax)); 313 assert (("libev: iocb fd must be in-bounds", fd >= 0 && fd < anfdmax));
314 314
315 /* ignore event if generation doesn't match */ 315 /* only accept events if generation counter matches */
316 if (ecb_expect_false (gen != (uint32_t)anfds [fd].egen)) 316 if (ecb_expect_true (gen == (uint32_t)anfds [fd].egen))
317 continue; 317 {
318
319 /* feed events, we do not expect or handle POLLNVAL */ 318 /* feed events, we do not expect or handle POLLNVAL */
320 fd_event ( 319 fd_event (
321 EV_A_ 320 EV_A_
322 fd, 321 fd,
323 (res & (POLLOUT | POLLERR | POLLHUP) ? EV_WRITE : 0) 322 (res & (POLLOUT | POLLERR | POLLHUP) ? EV_WRITE : 0)
324 | (res & (POLLIN | POLLERR | POLLHUP) ? EV_READ : 0) 323 | (res & (POLLIN | POLLERR | POLLHUP) ? EV_READ : 0)
325 ); 324 );
326 325
327 /* linux aio is oneshot: rearm fd. TODO: this does more work than strictly needed */ 326 /* linux aio is oneshot: rearm fd. TODO: this does more work than strictly needed */
328 linuxaio_fd_rearm (EV_A_ fd); 327 linuxaio_fd_rearm (EV_A_ fd);
328 }
329 329
330 --nr; 330 --nr;
331 ++ev; 331 ++ev;
332 } 332 }
333} 333}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines