summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/tevent/tevent_epoll.c5
-rw-r--r--lib/tevent/tevent_select.c5
-rw-r--r--lib/tevent/tevent_standard.c5
3 files changed, 15 insertions, 0 deletions
diff --git a/lib/tevent/tevent_epoll.c b/lib/tevent/tevent_epoll.c
index 38a14883cc..6c960c7491 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 bbbb95fce8..b666b4fba4 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 0ee99ca56b..40a08d7ab0 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;