mirror of
https://github.com/RGBCube/serenity
synced 2025-07-23 09:17:36 +00:00
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:
parent
c6ddbd1f3e
commit
6fcdfe1169
1 changed files with 2 additions and 2 deletions
|
@ -655,7 +655,7 @@ static bool handle_builtin(int argc, const char** argv, int& retval)
|
||||||
|
|
||||||
class FileDescriptionCollector {
|
class FileDescriptionCollector {
|
||||||
public:
|
public:
|
||||||
FileDescriptionCollector() {}
|
FileDescriptionCollector() { }
|
||||||
~FileDescriptionCollector() { collect(); }
|
~FileDescriptionCollector() { collect(); }
|
||||||
|
|
||||||
void collect()
|
void collect()
|
||||||
|
@ -1075,7 +1075,7 @@ static ExitCodeOrContinuationRequest run_command(const StringView& cmd)
|
||||||
for (size_t i = 0; i < children.size(); ++i) {
|
for (size_t i = 0; i < children.size(); ++i) {
|
||||||
auto& child = children[i];
|
auto& child = children[i];
|
||||||
do {
|
do {
|
||||||
int rc = waitpid(child.pid, &wstatus, 0);
|
int rc = waitpid(child.pid, &wstatus, WSTOPPED);
|
||||||
if (rc < 0 && errno != EINTR) {
|
if (rc < 0 && errno != EINTR) {
|
||||||
if (errno != ECHILD)
|
if (errno != ECHILD)
|
||||||
perror("waitpid");
|
perror("waitpid");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue