Shell: Correct program stop behaviour

Prior to this, we would only wait for program exit; the shell should
stop waiting once the program has been stopped.
Fixes #2230
This commit is contained in:
AnotherTest 2020-05-15 16:57:28 +04:30 committed by Andreas Kling
parent c6ddbd1f3e
commit 6fcdfe1169
Notes: sideshowbarker 2024-07-19 06:38:04 +09:00

View file

@ -655,7 +655,7 @@ static bool handle_builtin(int argc, const char** argv, int& retval)
class FileDescriptionCollector {
public:
FileDescriptionCollector() {}
FileDescriptionCollector() { }
~FileDescriptionCollector() { collect(); }
void collect()
@ -1075,7 +1075,7 @@ static ExitCodeOrContinuationRequest run_command(const StringView& cmd)
for (size_t i = 0; i < children.size(); ++i) {
auto& child = children[i];
do {
int rc = waitpid(child.pid, &wstatus, 0);
int rc = waitpid(child.pid, &wstatus, WSTOPPED);
if (rc < 0 && errno != EINTR) {
if (errno != ECHILD)
perror("waitpid");