From d61b2f33861eacdc0f9d343d38522fd91c1b7e72 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 26 Aug 2010 15:09:58 -0400 Subject: [PATCH] Fix an issue with forking and signal socketpairs in select/poll backends Nicholas Marriott identifies an issue where a signal socketpair doesn't get recreated if the event backend doesn't set event_reinit. See bug 3048812 There may be a similar issue with respect to th_notify_fd --- event.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/event.c b/event.c index e18b3b97..dbf1c2f3 100644 --- a/event.c +++ b/event.c @@ -747,9 +747,16 @@ event_reinit(struct event_base *base) evsel = base->evsel; +#if 0 + /* Right now, reinit always takes effect, since even if the + backend doesn't require it, the signal socketpair code does. + + XXX + */ /* check if this event mechanism requires reinit */ if (!evsel->need_reinit) goto done; +#endif /* prevent internal delete */ if (base->sig.ev_signal_added) {