X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=ircd%2Fengine_kqueue.c;fp=ircd%2Fengine_kqueue.c;h=a0d00dd645b5d35a49e3f350e142732f4d0cfb34;hp=b3f535f7d8db52825068a42f959ac06d62cadd9b;hb=41c732d83f3097645dc43ece14f38547045d1d0d;hpb=389b4c485cac5cf8deff89e381020f2a38f1ad34 diff --git a/ircd/engine_kqueue.c b/ircd/engine_kqueue.c index b3f535f..a0d00dd 100644 --- a/ircd/engine_kqueue.c +++ b/ircd/engine_kqueue.c @@ -53,8 +53,6 @@ static int kqueue_id; 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; @@ -293,7 +291,7 @@ engine_delete(struct Socket* sock) 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]; } @@ -353,8 +351,8 @@ engine_loop(struct Generators* gen) 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 */