From 94b8e676f312bde5b63cf31a613a78ffcfac2c43 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 27 May 2011 22:54:16 -0400 Subject: [PATCH] Allow base-notification functions to exist without setting an fd The kqueue and evport backends can make good use of this. --- event.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 -- 2.40.0