From 52d972610953cc448d505e72a0635cc15fd50918 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Sun, 26 Jun 2022 17:42:36 -0400 Subject: qemu-wrapper: Don't use SA_RESTART SA_RESTART + SIGALRM is janky Signed-off-by: Kent Overstreet --- lib/qemu-wrapper.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/qemu-wrapper.c b/lib/qemu-wrapper.c index 7025716..4c3b6f1 100644 --- a/lib/qemu-wrapper.c +++ b/lib/qemu-wrapper.c @@ -227,16 +227,13 @@ int main(int argc, char *argv[]) ssize_t len; char *line = NULL; - struct sigaction alarm_action = { - .sa_handler = alarm_handler, - .sa_flags = SA_RESTART, - }; + struct sigaction alarm_action = { .sa_handler = alarm_handler }; if (sigaction(SIGALRM, &alarm_action, NULL)) die("sigaction error: %m"); if (timeout) alarm(timeout); - +again: while ((len = getline(&line, &n, childf)) >= 0) { strim(line); @@ -280,7 +277,11 @@ int main(int argc, char *argv[]) free(output); } - fputs("done", stdout); + if (len == -1 && errno == EINTR) { + clearerr(childf); + goto again; + } + kill(child, SIGKILL); exit(ret); } -- cgit v1.2.3