nsjail: clearer new_proc/reap_proc loop

This commit is contained in:
Robert Swiecki 2018-07-24 00:23:44 +02:00
parent d355e1dc08
commit bfd7f1ec78

View File

@ -141,23 +141,18 @@ static int listenMode(nsjconf_t* nsjconf) {
} }
static int standaloneMode(nsjconf_t* nsjconf) { static int standaloneMode(nsjconf_t* nsjconf) {
for (;;) {
if (!subproc::runChild(nsjconf, STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO)) { if (!subproc::runChild(nsjconf, STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO)) {
LOG_E("Couldn't launch the child process"); LOG_E("Couldn't launch the child process");
return 0xff; return 0xff;
} }
for (;;) { for (;;) {
int child_status = subproc::reapProc(nsjconf); int child_status = subproc::reapProc(nsjconf);
if (subproc::countProc(nsjconf) == 0) { if (subproc::countProc(nsjconf) == 0) {
if (nsjconf->mode == MODE_STANDALONE_ONCE) { if (nsjconf->mode == MODE_STANDALONE_ONCE) {
return child_status; return child_status;
} }
if (!subproc::runChild( break;
nsjconf, STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO)) {
LOG_E("Couldn't launch the child process");
return 0xff;
}
continue;
} }
if (showProc) { if (showProc) {
showProc = false; showProc = false;
@ -168,9 +163,9 @@ static int standaloneMode(nsjconf_t* nsjconf) {
logs::logStop(sigFatal); logs::logStop(sigFatal);
return (128 + sigFatal); return (128 + sigFatal);
} }
pause(); pause();
} }
}
// not reached // not reached
} }