Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

wait gets confused when second argument exits before first (i think)



zsh -f
localhost% sleep 2 & a=$\! ; sleep 1 & wait $a $\!
[1] 31989
[2] 31990
[2]  + done       sleep 1
[1]  + done       sleep 2
wait: pid 31990 is not a child of this shell
localhost% sleep 2 & a=$\! ; sleep 1 & wait $\! $a
[1] 32121
[2] 32122
[2]  + done       sleep 1
[1]  + done       sleep 2
localhost% sleep 1 & a=$\! ; sleep 2 & wait $\! $a
[1] 32125
[2] 32126
[1]  - done       sleep 1
[2]  + done       sleep 2
wait: pid 32125 is not a child of this shell

localhost% sleep 2 & sleep 1 & wait %1 %2
[1] 31993
[2] 31994
[2]  + done       sleep 1
[1]  + done       sleep 2
wait: %2: no such job
localhost% sleep 2 & sleep 1 & wait %2 %1
[1] 31997
[2] 31998
[2]  - done       sleep 1
[1]  + done       sleep 2
localhost% sleep 1 & sleep 2 & wait %2 %1
[1] 32001
[2] 32002
[1]  + done       sleep 1
[2]  + done       sleep 2
wait: %1: no such job

So it looks like it doesn't matter if %1 or %2 exits first, just which
is the first argument to wait.
Same happens both on current cvs and on 4.3.6.

-- 
Mikael Magnusson



Messages sorted by: Reverse Date, Date, Thread, Author