threads and signals

Christopher Faylor cgf-no-personal-reply-please@cygwin.com
Thu Aug 25 03:14:00 GMT 2005


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/



More information about the Cygwin mailing list