sigtimedwait_try

parent 92b0e12e
......@@ -707,15 +707,28 @@ forkrun(const struct tc *tc, double killafter, void *t_priv)
sigset_t mask;
struct timespec timeo;
sigemptyset(&mask);
sigaddset(&mask, SIGCHLD);
//sigemptyset(&mask);
//sigaddset(&mask, SIGCHLD);
struct sigaction sac = {0};
sac.sa_handler = SIG_IGN;
for (i = 0; i < 64; i++)
(void)sigaction(i, &sac, NULL);
sigfillset(&mask);
// from vtim.c
timeo.tv_sec = (time_t)trunc(killafter);
timeo.tv_nsec = (int)(1e9 * (killafter - timeo.tv_sec));
siginfo_t info = {0};
DBG("killtimer %f", killafter);
i = sigtimedwait(&mask, NULL, &timeo);
i = sigtimedwait(&mask, &info, &timeo);
if (i != -1)
DBG("sigtimedwait ret %d", i);
assert(i >= -1);
if (i < 0) {
assert(errno == EAGAIN);
i = kill(pid, SIGABRT);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment