This is the mail archive of the
mailing list for the Cygwin project.
Re: Signal handling tune up.
At 09:58 PM 8/18/2003 -0400, Christopher Faylor wrote:
>I only applied the reversal of the movl with the call above since I'm
>not convinced that moving the set_process_mask into interrupt_setup
>doesn't introduce a race. It seems like your code could be setting the
>signal mask in interrupt_setup while it is also being restured in
>sigreturn. That would end up with the signal mask being indeterminate.
Bummer. You are right.
In practice breaking out of the inner loop (decrementing sigtodo)
should have about the same effect as having the sigthread itself set
the mask, i.e. when sigtodo is > 1 , the sigthread will only start one
handler and won't find the sigsave busy.