From e0ca1ef203a00670c7863d0981c5c07fd96adee5 Mon Sep 17 00:00:00 2001 From: Niels Provos Date: Sun, 15 Sep 2002 18:52:28 +0000 Subject: [PATCH] signal fixes from ericj@monkey.org via dugsong@monkey.org svn:r32 --- select.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/select.c b/select.c index fc5b6da4..0476c113 100644 --- a/select.c +++ b/select.c @@ -60,6 +60,7 @@ extern struct event_list signalqueue; #endif short evsigcaught[NSIG]; +volatile sig_atomic_t signal_caught = 0; struct selectop { int event_fds; /* Highest fd in fd set */ @@ -180,7 +181,8 @@ select_dispatch(void *arg, struct timeval *tv) signal_process(); return (0); - } + } else if (signal_caught) + signal_process(); LOG_DBG((LOG_MISC, 80, __FUNCTION__": select reports %d", res)); @@ -260,6 +262,7 @@ static void signal_handler(int sig) { evsigcaught[sig]++; + signal_caught = 1; } int @@ -307,5 +310,6 @@ signal_process(void) } memset(evsigcaught, 0, sizeof(evsigcaught)); + signal_caught = 0; } -- 2.50.1