X-Git-Url: https://git.llucax.com/software/libev.git/blobdiff_plain/23f51f36bfcf6f217b2a14967f968af5dd4675e7..7c3494003f656e9809ed0729b2d408f68b4b610d:/ev_select.c?ds=sidebyside diff --git a/ev_select.c b/ev_select.c index 38a2398..ac2d23c 100644 --- a/ev_select.c +++ b/ev_select.c @@ -90,7 +90,7 @@ select_modify (EV_P_ int fd, int oev, int nev) int word = fd / NFDBITS; int mask = 1UL << (fd % NFDBITS); - if (vec_max < word + 1) + if (expect_false (vec_max < word + 1)) { int new_max = word + 1; @@ -134,7 +134,7 @@ select_poll (EV_P_ ev_tstamp timeout) res = select (vec_max * NFDBITS, (fd_set *)vec_ro, (fd_set *)vec_wo, 0, &tv); - if (res < 0) + if (expect_false (res < 0)) { #if EV_SELECT_IS_WINSOCKET errno = WSAGetLastError (); @@ -168,7 +168,7 @@ select_poll (EV_P_ ev_tstamp timeout) if (FD_ISSET (handle, (fd_set *)vec_ro)) events |= EV_READ; if (FD_ISSET (handle, (fd_set *)vec_wo)) events |= EV_WRITE; - if (events) + if (expect_true (events)) fd_event (EV_A_ fd, events); } } @@ -191,7 +191,7 @@ select_poll (EV_P_ ev_tstamp timeout) events |= word_r & mask ? EV_READ : 0; events |= word_w & mask ? EV_WRITE : 0; - if (events) + if (expect_true (events)) fd_event (EV_A_ word * NFDBITS + bit, events); } } @@ -200,10 +200,10 @@ select_poll (EV_P_ ev_tstamp timeout) #endif } -static int +int inline_size select_init (EV_P_ int flags) { - backend_fudge = 1e-2; /* needed to compensate for select returning early, very conservative */ + backend_fudge = 0.; /* posix says this is zero */ backend_modify = select_modify; backend_poll = select_poll; @@ -224,7 +224,7 @@ select_init (EV_P_ int flags) return EVBACKEND_SELECT; } -static void +void inline_size select_destroy (EV_P) { ev_free (vec_ri);