On Sun, 2009-08-16 at 10:39 -0700, Nick Mathewson wrote: > > but I am willing to submit another patch (the one with > > accessor to base->event_gotterm/event_break) if you think that's the > > better way to do it. > > Probably.
Sorry for taking so long. Attached is the promised patch which adds accessors to base->event_gotterm/event_break, as well as modifying when they are reset in event_base_loop(). -khc
Index: include/event2/event.h =================================================================== --- include/event2/event.h (revision 1437) +++ include/event2/event.h (working copy) @@ -300,6 +300,28 @@ */ int event_base_loopbreak(struct event_base *); +/** + Checks if the event loop was told to exit + + @param eb the event_base structure returned by event_init() + @return true if event_base_loopexit() was called on this event base, + or 0 otherwise + @see event_base_loopexit + @see event_base_got_break + */ +int event_base_got_exit(struct event_base *); + +/** + Checks if the event loop was told to abort immediately. + + @param eb the event_base structure returned by event_init() + @return true if event_base_loopbreak() was called on this event base, + or 0 otherwise + @see event_base_loopbreak + @see event_base_got_exit + */ +int event_base_got_break(struct event_base *); + /* Flags to pass to event_set(), event_new(), event_assign(), * event_pending(), and anything else with an argument of the form * "short events" */ Index: event.c =================================================================== --- event.c (revision 1437) +++ event.c (working copy) @@ -830,8 +830,20 @@ } } +int +event_base_got_break(struct event_base *event_base) +{ + return event_base->event_break; +} +int +event_base_got_exit(struct event_base *event_base) +{ + return event_base->event_gotterm; +} + + /* not thread safe */ int @@ -859,15 +871,15 @@ base->th_owner_id = EVTHREAD_GET_ID(); #endif + base->event_gotterm = base->event_break = 0; + while (!done) { /* Terminate the loop if we have been asked to */ if (base->event_gotterm) { - base->event_gotterm = 0; break; } if (base->event_break) { - base->event_break = 0; break; }
_______________________________________________ Libevent-users mailing list Libevent-users@monkey.org http://lists.monkey.org:8080/listinfo/libevent-users