2008-02-11 00:32:53 +05:30
|
|
|
Wait + signals
|
|
|
|
|
|
|
|
We had some bugs here which are hard to test in testsuite.
|
|
|
|
|
|
|
|
Bug 1280 (http://busybox.net/bugs/view.php?id=1280):
|
|
|
|
was misbehaving in interactive ash. Correct behavior:
|
|
|
|
|
|
|
|
$ sleep 20 &
|
|
|
|
$ wait
|
|
|
|
^C
|
|
|
|
$ wait
|
|
|
|
^C
|
|
|
|
$ wait
|
|
|
|
^C
|
|
|
|
...
|
|
|
|
|
2009-03-19 19:12:05 +05:30
|
|
|
|
2008-02-11 00:32:53 +05:30
|
|
|
Bug 1984 (http://busybox.net/bugs/view.php?id=1984):
|
|
|
|
traps were not triggering:
|
|
|
|
|
|
|
|
trap_handler_usr () {
|
|
|
|
echo trap usr
|
|
|
|
}
|
|
|
|
trap_handler_int () {
|
|
|
|
echo trap int
|
|
|
|
}
|
|
|
|
trap trap_handler_usr USR1
|
|
|
|
trap trap_handler_int INT
|
|
|
|
sleep 3600 &
|
|
|
|
echo "Please do: kill -USR1 $$"
|
|
|
|
echo "or: kill -INT $$"
|
|
|
|
while true; do wait; echo wait interrupted; done
|
2009-03-19 19:12:05 +05:30
|
|
|
|
|
|
|
|
|
|
|
Bug 189 (https://bugs.busybox.net/show_bug.cgi?id=189)
|
|
|
|
|
|
|
|
func() {
|
|
|
|
sleep 1
|
|
|
|
}
|
|
|
|
while (true); do
|
|
|
|
func
|
|
|
|
echo Looping
|
|
|
|
done
|
|
|
|
|
|
|
|
^C was observed to make ash processes geometrically multiply (!) instead
|
|
|
|
of exiting. (true) in subshell does not seem to matter, as another user
|
|
|
|
reports the same with:
|
|
|
|
|
|
|
|
while true
|
|
|
|
do
|
|
|
|
echo Kill me
|
|
|
|
sleep 1
|
|
|
|
done
|