From: Nick Mathewson Date: Sat, 28 May 2011 02:54:16 +0000 (-0400) Subject: Allow base-notification functions to exist without setting an fd X-Git-Tag: release-2.1.1-alpha~266 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=94b8e676f312bde5b63cf31a613a78ffcfac2c43;p=libevent Allow base-notification functions to exist without setting an fd The kqueue and evport backends can make good use of this. --- diff --git a/event.c b/event.c index 366d867d..bd7234c4 100644 --- a/event.c +++ b/event.c @@ -825,6 +825,7 @@ event_reinit(struct event_base *base) base->th_notify_fd[0] = -1; base->th_notify_fd[1] = -1; event_debug_unassign(&base->th_notify); + base->th_notify_fn = NULL; } if (base->evsel->dealloc != NULL) @@ -2696,8 +2697,10 @@ evthread_make_base_notifiable(struct event_base *base) if (!base) return -1; - if (base->th_notify_fd[0] >= 0) + if (base->th_notify_fn != NULL) { + /* The base is already notifiable: we're doing fine. */ return 0; + } #if defined(_EVENT_HAVE_EVENTFD) && defined(_EVENT_HAVE_SYS_EVENTFD_H) #ifndef EFD_CLOEXEC