{
int flags = 0;
- _event_debug_assert_is_setup(ev);
+ EVBASE_ACQUIRE_LOCK(ev->ev_base, th_base_lock);
+ event_debug_assert_is_setup_(ev);
if (ev->ev_flags & EVLIST_INSERTED)
flags |= (ev->ev_events & (EV_READ|EV_WRITE|EV_SIGNAL));
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);
}
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;