diff options
author | Denys Vlasenko | 2016-10-28 21:57:31 +0200 |
---|---|---|
committer | Denys Vlasenko | 2016-10-28 21:59:09 +0200 |
commit | 7e6753609d102b68a625072fb1660065246a54e2 (patch) | |
tree | cd18eb18be9402da2bc1daf6ac9b53acba94dcbf /shell/hush_test/hush-misc | |
parent | 8f7b0248adca9a88351fd7f3dd208775242f3fe6 (diff) | |
download | busybox-7e6753609d102b68a625072fb1660065246a54e2.zip busybox-7e6753609d102b68a625072fb1660065246a54e2.tar.gz |
hush: fix "wait PID"
It was not properly interruptible, and did not update job status
(the exited processes were still thought of as running).
function old new delta
process_wait_result - 453 +453
wait_for_child_or_signal - 199 +199
run_list 996 1002 +6
checkjobs_and_fg_shell 41 43 +2
builtin_wait 328 215 -113
checkjobs 516 142 -374
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 2/2 up/down: 660/-487) Total: 173 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/hush_test/hush-misc')
-rw-r--r-- | shell/hush_test/hush-misc/wait1.right | 2 | ||||
-rwxr-xr-x | shell/hush_test/hush-misc/wait1.tests | 3 | ||||
-rw-r--r-- | shell/hush_test/hush-misc/wait2.right | 2 | ||||
-rwxr-xr-x | shell/hush_test/hush-misc/wait2.tests | 4 | ||||
-rw-r--r-- | shell/hush_test/hush-misc/wait3.right | 2 | ||||
-rwxr-xr-x | shell/hush_test/hush-misc/wait3.tests | 3 |
6 files changed, 16 insertions, 0 deletions
diff --git a/shell/hush_test/hush-misc/wait1.right b/shell/hush_test/hush-misc/wait1.right new file mode 100644 index 0000000..20f514d --- /dev/null +++ b/shell/hush_test/hush-misc/wait1.right @@ -0,0 +1,2 @@ +0 +[1] Running sleep 2 diff --git a/shell/hush_test/hush-misc/wait1.tests b/shell/hush_test/hush-misc/wait1.tests new file mode 100755 index 0000000..f9cf6d4 --- /dev/null +++ b/shell/hush_test/hush-misc/wait1.tests @@ -0,0 +1,3 @@ +sleep 2 & sleep 1 & wait $! +echo $? +jobs diff --git a/shell/hush_test/hush-misc/wait2.right b/shell/hush_test/hush-misc/wait2.right new file mode 100644 index 0000000..f018c2c --- /dev/null +++ b/shell/hush_test/hush-misc/wait2.right @@ -0,0 +1,2 @@ +0 +[1] Running sleep 3 diff --git a/shell/hush_test/hush-misc/wait2.tests b/shell/hush_test/hush-misc/wait2.tests new file mode 100755 index 0000000..be20f95 --- /dev/null +++ b/shell/hush_test/hush-misc/wait2.tests @@ -0,0 +1,4 @@ +sleep 3 & sleep 2 & sleep 1 +wait $! +echo $? +jobs diff --git a/shell/hush_test/hush-misc/wait3.right b/shell/hush_test/hush-misc/wait3.right new file mode 100644 index 0000000..5437b1d --- /dev/null +++ b/shell/hush_test/hush-misc/wait3.right @@ -0,0 +1,2 @@ +3 +[1] Running sleep 2 diff --git a/shell/hush_test/hush-misc/wait3.tests b/shell/hush_test/hush-misc/wait3.tests new file mode 100755 index 0000000..ac541c3 --- /dev/null +++ b/shell/hush_test/hush-misc/wait3.tests @@ -0,0 +1,3 @@ +sleep 2 & (sleep 1;exit 3) & wait $! +echo $? +jobs |