#endif
short evsigcaught[NSIG];
+volatile sig_atomic_t signal_caught = 0;
struct selectop {
int event_fds; /* Highest fd in fd set */
signal_process();
return (0);
- }
+ } else if (signal_caught)
+ signal_process();
LOG_DBG((LOG_MISC, 80, __FUNCTION__": select reports %d",
res));
signal_handler(int sig)
{
evsigcaught[sig]++;
+ signal_caught = 1;
}
int
}
memset(evsigcaught, 0, sizeof(evsigcaught));
+ signal_caught = 0;
}