Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
trap, eval and wait (was: [BUG] exec + builtin and traps)
On 2017-09-12 13:10:54 +0100, Peter Stephenson wrote:
> On Tue, 12 Sep 2017 14:02:37 +0200
> Vincent Lefevre <vincent@xxxxxxxxxx> wrote:
> > Why is "foo" (from the trap) printed before "bar", then?
>
> OK, so it's on the *sub* list after the command before the &&
> (wait) has executed successfully, but before the foo is executed.
I still don't understand. Actually, the real issue is that "wait"
should not have terminated successfully. Perhaps, this should be
clearer with:
------------------------------------------------------------
trap 'echo foo' USR1
( sleep 1; kill -USR1 $$; sleep 1; echo child ) &
eval "wait && echo bar"
echo OK
sleep 2
------------------------------------------------------------
After 1 second, the following is printed:
foo
bar
OK
And after another second:
child
So, this means that the "wait" has ended due to the USR1 signal, not
by a process termination. But then, the fact that "wait" terminates
with the exit status 0 does not seem to be correct.
--
Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
Messages sorted by:
Reverse Date,
Date,
Thread,
Author