From: Simon Liu Date: Thu, 14 Jun 2012 17:01:05 +0000 (+0800) Subject: Make event_pending() threadsafe. X-Git-Tag: release-2.0.20-stable~22 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=be7a95c62995a679ee24146b0d641b7392cbab51;p=libevent Make event_pending() threadsafe. (Commit message by Nick) --- diff --git a/event.c b/event.c index 325f005b..09df46b0 100644 --- a/event.c +++ b/event.c @@ -1846,6 +1846,7 @@ event_pending(const struct event *ev, short event, struct timeval *tv) { int flags = 0; + EVBASE_ACQUIRE_LOCK(ev->ev_base, th_base_lock); _event_debug_assert_is_setup(ev); if (ev->ev_flags & EVLIST_INSERTED) @@ -1869,6 +1870,8 @@ event_pending(const struct event *ev, short event, struct timeval *tv) #endif } + EVBASE_RELEASE_LOCK(ev->ev_base, th_base_lock); + return (flags & event); }