path, arg, WTERMSIG(rv), strsignal(WTERMSIG(rv)),
WCOREDUMP(rv) ? " - core dumped" : "");
else
- Message(M_ERR, "sys_cmd(%s,%s,...) exited with wstat %#x",
+ Message(M_ERR, "sys_cmd(%s,%s,...) exited with wstat %#x\n",
path, arg, rv);
}
} else if (c==0) {
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 */