From: Nick Mathewson Date: Mon, 16 Jul 2012 19:44:07 +0000 (-0400) Subject: Merge remote-tracking branch 'origin/patches-2.0' X-Git-Tag: release-2.1.2-alpha~85 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6c14d564304d8a557f2e1f06b5e31dc0645ce0ab;p=libevent Merge remote-tracking branch 'origin/patches-2.0' Conflicts: event.c win32select.c --- 6c14d564304d8a557f2e1f06b5e31dc0645ce0ab diff --cc event.c index 9019cb4f,09df46b0..79664d48 --- a/event.c +++ b/event.c @@@ -2005,7 -1846,8 +2005,8 @@@ event_pending(const struct event *ev, s { int flags = 0; + EVBASE_ACQUIRE_LOCK(ev->ev_base, th_base_lock); - _event_debug_assert_is_setup(ev); + event_debug_assert_is_setup_(ev); if (ev->ev_flags & EVLIST_INSERTED) flags |= (ev->ev_events & (EV_READ|EV_WRITE|EV_SIGNAL)); @@@ -2020,10 -1862,16 +2021,12 @@@ if (tv != NULL && (flags & event & EV_TIMEOUT)) { struct timeval tmp = ev->ev_timeout; tmp.tv_usec &= MICROSECONDS_MASK; -#if defined(_EVENT_HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) /* correctly remamp to real time */ evutil_timeradd(&ev->ev_base->tv_clock_diff, &tmp, tv); -#else - *tv = tmp; -#endif } + EVBASE_RELEASE_LOCK(ev->ev_base, th_base_lock); + return (flags & event); } diff --cc win32select.c index 2c407e4a,fbd27a43..67c6f97d --- a/win32select.c +++ b/win32select.c @@@ -304,7 -298,7 +304,7 @@@ win32_dispatch(struct event_base *base win32op->readset_out->fd_count : win32op->writeset_out->fd_count; if (!fd_count) { - long msec = evutil_tv_to_msec_(tv); - long msec = tv ? evutil_tv_to_msec(tv) : LONG_MAX; ++ long msec = tv ? evutil_tv_to_msec_(tv) : LONG_MAX; /* Sleep's DWORD argument is unsigned long */ if (msec < 0) msec = LONG_MAX;