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

Re: PATCH: (2) Re: FreeBSD compatability feature request



Vincent Stemen wrote:
> However, I actually tested the signal handling this time and, unless I
> am not understanding the trapsasync mode enough to test properly, I
> don't think it is working.  If I understand it correctly, with "set -T"
> shouldn't the parent process immediately get any signals it has trapped
> even if a child process it is waiting on has disabled the signals?

I think you're right.  I didn't do anything with basic signal handling
(which I don't know much about), just rewrote the way traps are queued.
It looks like it will need someone to rewire the signal handling not to
block other signals in this case.  The function is signal_suspend() in
signals.c which calls sigfillset() then removes SIGCHLD from the blocked
set.

However, that now gives us three different modes: the original zsh one,
POSIX where all traps are deferred, and this mode where signals are
delivered straight through.  So one option isn't enough.  Presumably
TRAPS_ASYNC should be off for the standard zsh behaviour, on for the new
behaviour, and we need another option for POSIX which will be overridden
if TRAPS_ASYNC is set.  Yuk.

-- 
Peter Stephenson <pws@xxxxxxx>                  Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK                          Tel: +44 (0)1223 692070


**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.

www.mimesweeper.com
**********************************************************************



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