cygwin 3.6.0: No signals received after swapcontext() is used
Christian Franke
Christian.Franke@t-online.de
Sat Mar 8 11:07:32 GMT 2025
Corinna Vinschen via Cygwin wrote:
> On Mar 6 13:24, Christian Franke via Cygwin wrote:
>> Found because 'stress-ng --context 1 ...' always hangs.
>>
>> The attached testcase uses the example from Linux swapcontext(3) to call the
>> context functions.
> Just tested with 3.5.3 and it doesn't work there, either.
>
> So yeah, it's a bug, but it's not a 3.6 regression and of minor
> importance. We can look into that for 3.7.
>
This is possibly a regression introduced in 3.0.6. A comparison of
strace outputs of signal handling before and after the swapcontext()
calls reveals that 'incyg' is incorrectly set after swapcontext(). A
revert of
https://cygwin.com/git/?p=newlib-cygwin.git;a=commit;h=c5f9eed1
fixes both the testcase and 'stress-ng --context ...'.
No patch provided because I'm not sure how to handle the (at least) two
other use cases of setcontext() correctly:
- the call from _cygtls::call_signal_handler(), and
- a call from a signal handler.
--
Regards,
Christian
More information about the Cygwin
mailing list