|
|
|
@@ -373,12 +373,9 @@ netjack_poll_deadline (int sockfd, jack_time_t deadline) |
|
|
|
{ |
|
|
|
struct pollfd fds; |
|
|
|
int i, poll_err = 0; |
|
|
|
sigset_t sigmask; |
|
|
|
struct sigaction action; |
|
|
|
#if HAVE_PPOLL |
|
|
|
struct timespec timeout_spec = { 0, 0 }; |
|
|
|
#else |
|
|
|
sigset_t rsigmask; |
|
|
|
int timeout; |
|
|
|
#endif |
|
|
|
|
|
|
|
@@ -397,32 +394,14 @@ netjack_poll_deadline (int sockfd, jack_time_t deadline) |
|
|
|
timeout = lrintf( (float)(deadline - now) / 1000.0 ); |
|
|
|
#endif |
|
|
|
|
|
|
|
sigemptyset(&sigmask); |
|
|
|
sigaddset(&sigmask, SIGHUP); |
|
|
|
sigaddset(&sigmask, SIGINT); |
|
|
|
sigaddset(&sigmask, SIGQUIT); |
|
|
|
sigaddset(&sigmask, SIGPIPE); |
|
|
|
sigaddset(&sigmask, SIGTERM); |
|
|
|
sigaddset(&sigmask, SIGUSR1); |
|
|
|
sigaddset(&sigmask, SIGUSR2); |
|
|
|
|
|
|
|
action.sa_handler = SIG_DFL; |
|
|
|
action.sa_mask = sigmask; |
|
|
|
action.sa_flags = SA_RESTART; |
|
|
|
|
|
|
|
for (i = 1; i < NSIG; i++) |
|
|
|
if (sigismember (&sigmask, i)) |
|
|
|
sigaction (i, &action, 0); |
|
|
|
|
|
|
|
fds.fd = sockfd; |
|
|
|
fds.events = POLLIN; |
|
|
|
|
|
|
|
#if HAVE_PPOLL |
|
|
|
poll_err = ppoll (&fds, 1, &timeout_spec, &sigmask); |
|
|
|
poll_err = ppoll (&fds, 1, &timeout_spec, NULL); |
|
|
|
#else |
|
|
|
sigprocmask (SIG_UNBLOCK, &sigmask, &rsigmask); |
|
|
|
poll_err = poll (&fds, 1, timeout); |
|
|
|
sigprocmask (SIG_SETMASK, &rsigmask, NULL); |
|
|
|
#endif |
|
|
|
|
|
|
|
if (poll_err == -1) |
|
|
|
|