Displaying 2 results from an estimated 2 matches for "4548ae69".
2019 Jan 25
0
[klibc:update-dash] jobs - Do not block when waiting on SIGCHLD
...c, argv, flags) &&
+ !(exception == EXERROR && spclbltin <= 0)) {
raise:
longjmp(handler->loc, 1);
}
@@ -892,6 +887,7 @@ raise:
}
status = waitforjob(jp);
+ FORCEINTON;
out:
if (cmd->ncmd.redirect)
diff --git a/usr/dash/jobs.c b/usr/dash/jobs.c
index 4548ae69..2b8e1afe 100644
--- a/usr/dash/jobs.c
+++ b/usr/dash/jobs.c
@@ -974,10 +974,17 @@ waitforjob(struct job *jp)
int st;
TRACE(("waitforjob(%%%d) called\n", jp ? jobno(jp) : 0));
- while ((jp && jp->state == JOBRUNNING) || gotsigchld)
- dowait(DOWAIT_BLOCK, jp);
- if (!jp)...
2019 Jan 25
0
[klibc:update-dash] eval: Reap zombies after built-in commands and functions
...FUNCTION:
poplocalvars(1);
if (evalfun(cmdentry.u.func, argc, argv, flags))
goto raise;
-readstatus:
- status = exitstatus;
break;
}
+ status = waitforjob(jp);
+
out:
if (cmd->ncmd.redirect)
popredir(execcmd);
diff --git a/usr/dash/jobs.c b/usr/dash/jobs.c
index a2602bae..4548ae69 100644
--- a/usr/dash/jobs.c
+++ b/usr/dash/jobs.c
@@ -53,6 +53,7 @@
#include <termios.h>
#undef CEOF /* syntax.h redefines this */
#endif
+#include "eval.h"
#include "redir.h"
#include "show.h"
#include "main.h"
@@ -972,10 +973,11 @@ waitforjob...