nsjail: clearer new_proc/reap_proc loop
This commit is contained in:
parent
d355e1dc08
commit
bfd7f1ec78
11
nsjail.cc
11
nsjail.cc
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user