From d67388e986f1724b804d602040b82715116f3f7d Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Thu, 27 Jan 2022 17:25:02 +0100 Subject: allow shutdown during bringup --- rvnit.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/rvnit.c b/rvnit.c index 75b55d5..f49fdd3 100644 --- a/rvnit.c +++ b/rvnit.c @@ -726,7 +726,7 @@ main(int argc, char *argv[]) #endif int i; - for (level = 0; level < 100; level++) { + for (level = 0; level < 100 && !want_shutdown; level++) { /* spawn all of level */ int oneshot = 0; @@ -764,12 +764,16 @@ main(int argc, char *argv[]) pthread_mutex_unlock(&services_lock); - while (oneshot) { + while (oneshot && !want_shutdown) { int status = 0; int pid = wait(&status); - if (pid < 0 && errno == ECHILD) - break; + if (pid < 0) { + if (errno == ECHILD) + break; + else + continue; + } pthread_mutex_lock(&services_lock); @@ -813,10 +817,7 @@ cont1: LOG("system up"); - while (1) { - if (want_shutdown) - break; - + while (!want_shutdown) { if (want_rescandir) { pthread_mutex_lock(&services_lock); rescandir(); -- cgit 1.4.1