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;
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 ();
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);
}
}
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);
}
}
#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;
return EVBACKEND_SELECT;
}
-static void
+void inline_size
select_destroy (EV_P)
{
ev_free (vec_ri);