1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-05-27 18:36:05 +02:00

22281: wait shouldn't return immediately on signal unless trapped

This commit is contained in:
Peter Stephenson 2008-03-25 18:17:07 +00:00
parent 56e1904e45
commit 845faf5586
2 changed files with 7 additions and 2 deletions

View File

@ -1,5 +1,8 @@
2008-03-25 Peter Stephenson <p.w.stephenson@ntlworld.com>
* 24733: Src/jobs.c: wait shouldn't return immediately on
a signal unless it's trapped (bug in 22281).
* 24732: Src/Builtins/sched.c: not enough space for ztrftime
string with multibyte characters.

View File

@ -1170,7 +1170,8 @@ waitforpid(pid_t pid, int wait_cmd)
last_signal = -1;
signal_suspend(SIGCHLD);
if (last_signal != SIGCHLD && wait_cmd) {
if (last_signal != SIGCHLD && wait_cmd && last_signal >= 0 &&
(sigtrapped[last_signal] & ZSIG_TRAPPED)) {
/* wait command interrupted, but no error: return */
restore_queue_signals(q);
return 128 + last_signal;
@ -1208,7 +1209,8 @@ zwaitjob(int job, int wait_cmd)
!(jn->stat & STAT_DONE) &&
!(interact && (jn->stat & STAT_STOPPED))) {
signal_suspend(SIGCHLD);
if (last_signal != SIGCHLD && wait_cmd)
if (last_signal != SIGCHLD && wait_cmd && last_signal >= 0 &&
(sigtrapped[last_signal] & ZSIG_TRAPPED))
{
/* builtin wait interrupted by trapped signal */
restore_queue_signals(q);