static struct pollfd *polls;
/** Number of ::polls elements that have been populated. */
static int polls_used;
-/** Current processing position in ::polls. */
-static int polls_i;
/** Decrement the error count (once per hour).
* @param[in] ev Expired timer event (ignored).
sockList[s_fd(sock)] = 0; /* zero the socket list entry */
/* Drop any unprocessed events citing this socket. */
- for (ii = polls_i; ii < polls_used; ii++) {
+ for (ii = 0; ii < polls_used; ii++) {
if (polls[ii].fd == s_fd(sock)) {
polls[ii] = polls[--polls_used];
}
continue;
}
- for (polls_i = 0; polls_i < polls_used; polls_i++) {
- pfd = &polls[polls_i];
+ while (polls_used > 0) {
+ pfd = &polls[--polls_used];
assert(-1 < pfd->fd);
sock = sockList[pfd->fd];
static struct epoll_event *events;
/** Number of ::events elements that have been populated. */
static int events_used;
-/** Current processing position in ::events. */
-static int events_i;
/** Decrement the error count (once per hour).
* @param[in] ev Expired timer event (ignored).
Debug((DEBUG_ENGINE, "epoll: Deleting socket %d [%p], state %s",
s_fd(sock), sock, state_to_name(s_state(sock))));
/* Drop any unprocessed events citing this socket. */
- for (ii = events_i; ii < events_used; ii++) {
+ for (ii = 0; ii < events_used; ii++) {
if (events[ii].data.ptr == sock) {
events[ii] = events[--events_used];
}
continue;
}
- for (events_i = 0; events_i < events_used; ) {
- evt = &events[events_i++];
+ while (events_used > 0) {
+ evt = &events[--events_used];
if (!(sock = evt->data.ptr))
continue;
gen_ref_inc(sock);
static struct kevent *events;
/** Number of ::events elements that have been populated. */
static int events_used;
-/** Current processing position in ::events. */
-static int events_i;
/** Number of recent errors from kqueue. */
static int errors = 0;
sockList[s_fd(sock)] = 0;
/* Drop any unprocessed events citing this socket. */
- for (ii = events_i; ii < events_used; ii++) {
+ for (ii = 0; ii < events_used; ii++) {
if (events[ii].ident == s_fd(sock)) {
events[ii] = events[--events_used];
}
continue;
}
- for (events_i = 0; events_i < events_used; events_i++) {
- evt = &events[events_i];
+ while (events_used > 0) {
+ evt = &events[--events_used];
if (evt->filter == EVFILT_SIGNAL) {
/* it's a signal; deal appropriately */