diff options
author | Stefan Metzmacher <metze@samba.org> | 2009-03-16 12:45:48 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2009-04-15 09:07:12 +0200 |
commit | 98df601657ebd495408f31731a211dbe1b8b22cb (patch) | |
tree | ad5d1fc75409fecf78bc6bcfe223cfaeb648387e /lib/tevent | |
parent | 3fbc64bea6500ccaa82a63fe36e3f9fb821a6bb4 (diff) | |
download | samba-98df601657ebd495408f31731a211dbe1b8b22cb.tar.gz |
tevent: check signal events first in event_loop_once
We also check for signal events directly before and after
the select/epoll calls.
metze
(cherry picked from commit 0139befb915006d6ec9fec2734057c5c50b3c383)
(cherry picked from commit c0bc27fc57260191e35464b63e114163d291d4da)
Diffstat (limited to 'lib/tevent')
-rw-r--r-- | lib/tevent/tevent_epoll.c | 5 | ||||
-rw-r--r-- | lib/tevent/tevent_select.c | 5 | ||||
-rw-r--r-- | lib/tevent/tevent_standard.c | 5 |
3 files changed, 15 insertions, 0 deletions
diff --git a/lib/tevent/tevent_epoll.c b/lib/tevent/tevent_epoll.c index 38a14883ccc..6c960c74918 100644 --- a/lib/tevent/tevent_epoll.c +++ b/lib/tevent/tevent_epoll.c @@ -404,6 +404,11 @@ static int epoll_event_loop_once(struct tevent_context *ev, const char *location struct epoll_event_context); struct timeval tval; + if (epoll_ev->ev->signal_events && + tevent_common_check_signal(epoll_ev->ev)) { + return 0; + } + tval = tevent_common_loop_timer_delay(ev); if (tevent_timeval_is_zero(&tval)) { return 0; diff --git a/lib/tevent/tevent_select.c b/lib/tevent/tevent_select.c index bbbb95fce8b..b666b4fba4a 100644 --- a/lib/tevent/tevent_select.c +++ b/lib/tevent/tevent_select.c @@ -210,6 +210,11 @@ static int select_event_loop_once(struct tevent_context *ev, const char *locatio struct select_event_context); struct timeval tval; + if (select_ev->ev->signal_events && + tevent_common_check_signal(select_ev->ev)) { + return 0; + } + tval = tevent_common_loop_timer_delay(ev); if (tevent_timeval_is_zero(&tval)) { return 0; diff --git a/lib/tevent/tevent_standard.c b/lib/tevent/tevent_standard.c index 0ee99ca56b2..40a08d7ab08 100644 --- a/lib/tevent/tevent_standard.c +++ b/lib/tevent/tevent_standard.c @@ -524,6 +524,11 @@ static int std_event_loop_once(struct tevent_context *ev, const char *location) struct std_event_context); struct timeval tval; + if (std_ev->ev->signal_events && + tevent_common_check_signal(std_ev->ev)) { + return 0; + } + tval = tevent_common_loop_timer_delay(ev); if (tevent_timeval_is_zero(&tval)) { return 0; |