X-Git-Url: https://git.llucax.com/software/libev.git/blobdiff_plain/cff78812ebbcab7601919f479447150fb7c2c9f4..ed54de67c9823483cc94f0decfd2f5405a5844f7:/ev_select.c?ds=sidebyside diff --git a/ev_select.c b/ev_select.c index 3c099c5..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,12 +200,12 @@ select_poll (EV_P_ ev_tstamp timeout) #endif } -static int +int inline_size select_init (EV_P_ int flags) { - method_fudge = 1e-2; /* needed to compensate for select returning early, very conservative */ - method_modify = select_modify; - method_poll = select_poll; + backend_fudge = 0.; /* posix says this is zero */ + backend_modify = select_modify; + backend_poll = select_poll; #if EV_SELECT_USE_FD_SET vec_max = FD_SETSIZE / 32; @@ -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);