From d92449411c3846ae1f6f70d6ffbe113b74a9418e Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Mon, 5 Mar 2007 12:32:32 +0100 Subject: [PATCH] Gently prod children with a SIGQUIT on terminate This should unstuck most loops. Signed-off-by: Jens Axboe --- fio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fio.c b/fio.c index b668d856..d426ad66 100644 --- a/fio.c +++ b/fio.c @@ -67,6 +67,7 @@ static void terminate_threads(int group_id, int forced_kill) for_each_td(td, i) { if (group_id == TERMINATE_ALL || groupid == td->groupid) { + kill(td->pid, SIGQUIT); td->terminate = 1; td->start_delay = 0; if (forced_kill) @@ -893,7 +894,8 @@ static void reap_threads(int *nr_running, int *t_rate, int *m_rate) if (WIFSIGNALED(status)) { int sig = WTERMSIG(status); - log_err("fio: pid=%d, got signal=%d\n", td->pid, sig); + if (sig != SIGQUIT) + log_err("fio: pid=%d, got signal=%d\n", td->pid, sig); td_set_runstate(td, TD_REAPED); goto reaped; } -- 2.25.1