diff options
| author | _ov4 <ov4@ov4.org> | 2026-08-13 15:10:05 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-08-13 15:10:05 +0000 |
| commit | b17e1ff84557511a3cc0782c3e2ef102aad9d671 (patch) | |
| tree | 462ca9b02a563ab6fdecd22dd3f82a147ef8d632 /tsh.cc | |
| parent | 97179bb75cbfc43d94a10a34410a8f9752090aaa (diff) | |
fix
Diffstat (limited to 'tsh.cc')
| -rw-r--r-- | tsh.cc | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -367,7 +367,12 @@ void do_bgfg(char **argv) sigset_t prev_with_sigchld_blocked = prev; sigaddset(&prev_with_sigchld_blocked, SIGCHLD); sigprocmask(SIG_SETMASK, &prev_with_sigchld_blocked, NULL); - kill(-(j->pid), SIGCONT); + if (kill(-(j->pid), SIGCONT) < 0) + { + cerr << "Cannot continue process " << j->pid; + sigprocmask(SIG_SETMASK, &prev, NULL); + return; + } waitfg(j->pid); @@ -422,7 +427,7 @@ void sigchld_handler(int sig) while ((pid = waitpid(-1, &status, WNOHANG | WUNTRACED)) > 0) { - if (WIFSIGNALED(status) | WIFSTOPPED(status)) + if (WIFSIGNALED(status) || WIFSTOPPED(status)) { int jid = pid2jid(pid); atomic_print("Job ["); |
