From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 42740 invoked by alias); 20 Aug 2017 13:20:04 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 42664 invoked by uid 89); 20 Aug 2017 13:20:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=younger, precious, Advantage, Christopher X-HELO: lb1-smtp-cloud7.xs4all.net Received: from lb1-smtp-cloud7.xs4all.net (HELO lb1-smtp-cloud7.xs4all.net) (194.109.24.24) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 20 Aug 2017 13:19:56 +0000 Received: from tmp.v3Ffz9JhKN ([83.162.234.136]) by smtp-cloud7.xs4all.net with ESMTPSA id jQ8ud3YPOAr7rjQ8vdN2PC; Sun, 20 Aug 2017 15:19:53 +0200 Date: Sun, 20 Aug 2017 13:20:00 -0000 Message-ID: From: Houder To: cygwin@cygwin.com Subject: Re: REVISITED: Signal delivered while blocked References: <20170818162040.GC6314@calimero.vinschen.de> In-Reply-to: <20170818162040.GC6314@calimero.vinschen.de> Content-Type: text/plain; charset=UTF-8; format=fixed User-Agent: mua.awk 0.99 X-CMAE-Envelope: MS4wfAOeTJvKb2SYPsjHFVROJOgY4IQs5w+LCwGbsuDkBdaFXR4v3FbNBmnDebDGb8ow1qNDwCTLBBVDu0rVj/G5Hwkb6L5ZZx4ZC5dQoKNFbTq/D4AQL70I 2PP5tHRDdi8Xmod8wx0vryZZZIIwn9/pxT+w9F5BsNLHbhXCpixkRRRCGLYVB9XlkCyPxSUChtOhQA== X-IsSubscribed: yes X-SW-Source: 2017-08/txt/msg00179.txt.bz2 On Fri, 18 Aug 2017 18:20:40, Corinna Vinschen wrote: > On Aug 16 23:22, Houder wrote: [snip] > > The alternative testcase in fact consists of 2 testcases (2 files): > > > > 1. sigprocmask-exclusion4.c > > 2. sigprocmask-exclusion5.c > Thanks for the testcases. This is still a pretty tricky problem and a Providing a proper testcase was my sole purpose (intention?). That is, to help you (i.e. to prevent you from waisting your precious time). Though Noah believes that my modification of his testcase is uncalled for. Consequently, it is up your discretion :-) > few hours of debugging haven't shown anything conclusive. The signal > code was my former co-maintainer's domain, so I'm not as fluent in > debugging it. Got it, "Advantage Christopher Faylor, disadvantage Corinna Vinschen"! Perhaps Christopher would be willing to lend you a hand here ... for old times' sake ... or as an once-only challenge (to proof to himself, he can still do it :-)) > ATM it looks like a race inside of the Cygwin DLL to me. The checks if > a signal should be handled and the *creation* of the call to the signal > handler (but *not* the actual call to the signal handler) may occur > before the signal is blocked, while the call then occurs after the > blocking. My impression as well (however, in my case it was based on the results of the testcases). .. uhm, in "U/Linux land" the delivery of a signal is "immediate", once the process returns to the kernel ... (i.e. the stack of the process is adjusted with a call to the signal handler before it will continue). .. signal handler A is not allowed to continue (and block signal B) if the kernel has decided that signal handler B should run. That is, it is what I remember from old times ... > Anyway, I'm not sure I have enough time to fully immerse into that > problem any time soon. I'd be not too unhappy if somebody would try to > debug this in the Cygwin DLL, too... I hear you. However I am not capable to help you here ... Perhaps somebody else can ... a much younger person than I am. Regards, Henri ===== -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple