static int signal_beforepoll(void *st, struct pollfd *fds, int *nfds_io,
int *timeout_io)
{
- if (*nfds_io<1) {
- *nfds_io=1;
- return ERANGE;
- }
- *nfds_io=1;
+ BEFOREPOLL_WANT_FDS(1);
fds[0].fd=spr;
fds[0].events=POLLIN;
return 0;
sigemptyset(®istered);
sigemptyset(&pending);
- if (pipe(p)!=0) {
- fatal_perror("start_signal_handling: pipe");
- }
+ pipe_cloexec(p);
spw=p[1];
spr=p[0];
if (fcntl(spw, F_SETFL, fcntl(spw, F_GETFL)|O_NONBLOCK)==-1) {
fatal_perror("start_signal_handling: fcntl(O_NONBLOCK)");
}
- register_for_poll(NULL,signal_beforepoll,signal_afterpoll,1,"signal");
+ register_for_poll(NULL,signal_beforepoll,signal_afterpoll,"signal");
signal_handling=True;
/* Register signal handlers for all the signals we're interested in */