On Aug 18 01:43, Takashi Yano wrote: > Hi Corinna, > > On Fri, 16 Aug 2019 16:48:11 +0200 > Corinna Vinschen wrote: > > I now had an idea, but I'm not entirely sure if it's the right thing to > > do. Can you please test this? It consists of two patches, one with the > > revamped signalfd handling, and one with the revert of the signalfd > > patch I applied a couple of days ago. > > > > Quick description: I dropped signalfd_select_wait entirely. Instead, > > wait_sig sets or resets a manual event object to indicate if there are > > signals pending in the queue, even after trying to handle them the > > normal way. That usually means they are blocked. > > > > select() uses the event to wake up from WFMO, if at least one signalfd > > is present in the read descriptor set. The rest is done via the peek > > and verify functions in select, which basically just check if this > > signalfd is waiting for one of the pending signals. > > > > The reversion of my patch from a couple days ago is not required as > > such, but after thinking about this a while I'm convinced that this was > > just me not getting the full picture. Also, reverting this patch would > > revert to seeing a SEGV in your testcase and thus a bug in the new code, > > too. > > > > I attached both patches. It would be pretty nice if you could test them > > and point out any problems you get with this new code. > > > > Please note that you should ideally perform a full rebuild due to the > > slight change in TLS layout. > > I confirmed that my STC and script command works as expected with these > patches. > > Thank you for greate work! Great, thank you, and thanks for testing! Corinna -- Corinna Vinschen Cygwin Maintainer