um: Cleanup SIGTERM handling
Richard reported that some UML processes survive if the UML main process receives a SIGTERM. This issue was caused by a wrongly placed signal(SIGTERM, SIG_DFL) in init_new_thread_signals(). It disabled the UML exit handler accidently for some processes. The correct solution is to disable the fatal handler for all UML helper threads/processes. Such that last_ditch_exit() does not get called multiple times and all processes can exit due to SIGTERM. Reported-and-tested-by: Richard W.M. Jones <rjones@redhat.com> Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
@@ -55,7 +55,7 @@ static int write_sigio_thread(void *unused)
|
||||
int i, n, respond_fd;
|
||||
char c;
|
||||
|
||||
signal(SIGWINCH, SIG_IGN);
|
||||
os_fix_helper_signals();
|
||||
fds = ¤t_poll;
|
||||
while (1) {
|
||||
n = poll(fds->poll, fds->used, -1);
|
||||
|
||||
Reference in New Issue
Block a user