Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Wed, 24 Aug 2005 23:14:06 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: threads and signals Message-ID: <20050825031406.GA16840@trixie.casa.cgf.cx> Reply-To: cygwin AT cygwin DOT com References: <20050825001323 DOT GC23620 AT bouh DOT ens-lyon DOT fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050825001323.GC23620@bouh.ens-lyon.fr> User-Agent: Mutt/1.5.8i On Thu, Aug 25, 2005 at 02:13:23AM +0200, Samuel Thibault wrote: >Christopher Faylor, le Wed 24 Aug 2005 00:49:55 -0400, a ?crit : >> On Tue, Aug 23, 2005 at 10:51:44PM +0200, Samuel Thibault wrote: >> >The attached program doesn't work as expected: if I run it and try to >> >kill it (-15), nothing seem happens. I if comment out >> >pthread_sigmask(), it does work as expected: the handler is called, and >> >threads are interrupted. What's more: if I move pthread_sigmask() >> >after the pause() call in the foo() function, killing works twice, but >> >no more. >> >> This should be fixed in the latest snapshot. Or at least, it seems to >> now properly emulate linux. > >Hmm, that's better indeed. But the signal handler is executed in the >wrong thread: the attached program outputs: > >thread 0x4601c0 >main 0x460008 >thread 0x4601c0 awaken >thread 0x4601c0 awaken >thread 0x4601c0 awaken >thread 0x4601c0 awaken >thread 0x4601c0 awaken >thread 0x4601c0 awaken >thread 0x4601c0 awaken >foo 15 0x460008 >main awaken > >While the main thread asked the signal to be blocked. (It works as >expected on linux 2.6). This should be fixed in the next snapshot. cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/