From: Niels Provos Date: Sat, 3 Dec 2005 20:51:23 +0000 (+0000) Subject: avoid double recacle when loop_once is used; from Richard Nyberg X-Git-Tag: release-2.0.1-alpha~760 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9c9f0651842bbb84d16e301640d8e5e6a1c34297;p=libevent avoid double recacle when loop_once is used; from Richard Nyberg svn:r187 --- diff --git a/event.c b/event.c index 2a2150ac..0d6de870 100644 --- a/event.c +++ b/event.c @@ -313,12 +313,12 @@ event_base_loop(struct event_base *base, int flags) struct timeval tv; int res, done; - /* Calculate the initial events that we are waiting for */ - if (evsel->recalc(base, evbase, 0) == -1) - return (-1); - done = 0; while (!done) { + /* Calculate the initial events that we are waiting for */ + if (evsel->recalc(base, evbase, 0) == -1) + return (-1); + /* Terminate the loop if we have been asked to */ if (base->event_gotterm) { base->event_gotterm = 0; @@ -372,9 +372,6 @@ event_base_loop(struct event_base *base, int flags) done = 1; } else if (flags & EVLOOP_NONBLOCK) done = 1; - - if (evsel->recalc(base, evbase, 0) == -1) - return (-1); } event_debug(("%s: asked to terminate loop.", __func__));