31 |
#include <fcntl.h> |
#include <fcntl.h> |
32 |
#include <unistd.h> |
#include <unistd.h> |
33 |
#include <signal.h> |
#include <signal.h> |
34 |
|
#include <error.h> |
35 |
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
36 |
# include <sys/types.h> |
# include <sys/types.h> |
37 |
#endif |
#endif |
83 |
|
|
84 |
#define MAXFD 64 |
#define MAXFD 64 |
85 |
|
|
86 |
void |
RETSIGTYPE |
87 |
waitdaemon_timeout (int signo) |
waitdaemon_timeout (int signo) |
88 |
{ |
{ |
89 |
int left; |
int left; |
90 |
|
|
|
(void)signo; |
|
91 |
left = alarm (0); |
left = alarm (0); |
92 |
signal (SIGALRM, SIG_DFL); |
signal (SIGALRM, SIG_DFL); |
93 |
if (left == 0) |
if (left == 0) |
94 |
errx (1, "timed out waiting for child"); |
error (1, 0, "timed out waiting for child"); |
95 |
} |
} |
96 |
|
|
97 |
/* waitdaemon is like daemon, but optionally the parent pause up |
/* waitdaemon is like daemon, but optionally the parent pause up |