[jra at samba.org: [PATCH] Fix tevent: Ignore unexpected signal events for ports backend.]
Jeremy Allison
jra at samba.org
Mon Mar 2 17:46:02 MST 2015
Miss-spelled samba-technical. Doh ! :-).
----- Forwarded message from Jeremy Allison <jra at samba.org> -----
Date: Mon, 2 Mar 2015 16:45:20 -0800
From: Jeremy Allison <jra at samba.org>
To: ddiss at suse.de, samba-technica at lists.samba.org
Cc: jra at samba.org
Subject: [PATCH] Fix tevent: Ignore unexpected signal events for ports backend.
User-Agent: Mutt/1.5.21 (2010-09-15)
Makes us do things the same way the Linux epoll
backend does.
David, please review !
Thanks,
Jeremy.
From 025b657ed65e6752ce61b148bfa487d7351054a6 Mon Sep 17 00:00:00 2001
From: Jeremy Allison <jra at samba.org>
Date: Mon, 2 Mar 2015 16:17:54 -0800
Subject: [PATCH] lib: tevent: Ignore unexpected signal events in the same way
the epoll backend does.
https://bugzilla.samba.org/show_bug.cgi?id=11118
Signed-off-by: Jeremy Allison <jra at samba.org>
---
lib/tevent/tevent_port.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/lib/tevent/tevent_port.c b/lib/tevent/tevent_port.c
index 93e94b2..dd4958e 100644
--- a/lib/tevent/tevent_port.c
+++ b/lib/tevent/tevent_port.c
@@ -483,10 +483,16 @@ static int port_event_loop(struct port_event_context *port_ev, struct timeval *t
port_errno = errno;
tevent_trace_point_callback(ev, TEVENT_TRACE_AFTER_WAIT);
- if (ret == -1 && port_errno == EINTR && ev->signal_events) {
- if (tevent_common_check_signal(ev)) {
- return 0;
+ if (ret == -1 && port_errno == EINTR) {
+ if (ev->signal_events) {
+ tevent_common_check_signal(ev);
}
+ /*
+ * If no signal handlers we got an unsolicited
+ * signal wakeup. This can happen with epoll
+ * too. Just return and ignore.
+ */
+ return 0;
}
if (ret == -1 && port_errno == ETIME && tvalp) {
--
2.2.0.rc0.207.ga3a616c
----- End forwarded message -----
More information about the samba-technical
mailing list