From b17e1ff84557511a3cc0782c3e2ef102aad9d671 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Thu, 13 Aug 2026 15:10:05 +0000 Subject: fix --- tsh.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tsh.cc b/tsh.cc index a0d425c..cc643ba 100644 --- a/tsh.cc +++ b/tsh.cc @@ -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 ["); -- cgit v1.3.1-4-g156e