Fix quit.

master
Johann George (QLogic) 2008-01-23 19:21:15 -08:00
parent 13f836801f
commit f6863fac0f
1 changed files with 15 additions and 0 deletions

View File

@ -202,6 +202,7 @@ static void show_info(MEASURE measure);
static void show_rest(void);
static void show_used(void);
static void sig_alrm(int signo, siginfo_t *siginfo, void *ucontext);
static void sig_quit(int signo, siginfo_t *siginfo, void *ucontext);
static void sig_urg(int signo, siginfo_t *siginfo, void *ucontext);
static char *skip_colon(char *s);
static void start_test_timer(int seconds);
@ -561,6 +562,9 @@ set_signals(void)
sigaction(SIGALRM, &act, 0);
sigaction(SIGPIPE, &act, 0);
act.sa_sigaction = sig_quit;
sigaction(SIGQUIT, &act, 0);
act.sa_sigaction = sig_urg;
sigaction(SIGURG, &act, 0);
}
@ -576,6 +580,16 @@ sig_alrm(int signo, siginfo_t *siginfo, void *ucontext)
}
/*
* Our child sends us a quit when it wishes us to exit.
*/
static void
sig_quit(int signo, siginfo_t *siginfo, void *ucontext)
{
exit(0);
}
/*
* Called when a TCP/IP out-of-band message is received.
*/
@ -1511,6 +1525,7 @@ run_server_quit(void)
sync_test();
read(RemoteFD, buf, sizeof(buf));
kill(getppid(), SIGQUIT);
exit(0);
}