This is the mail archive of the cygwin mailing list for the Cygwin project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Wed, 12 Oct 2005, Pavel Tsekov wrote: > On Tue, 11 Oct 2005, Christopher Faylor wrote: > > > I don't see how ignoring blocked signals would cause a SEGV however. > > Well... indirectly they do :) I hope you are not too annoyed already > because this time I really found the cause of the problem. > > Assume a signal is sent to a thread with pthread_kill() but the thread is > blocking the signal and in doesn't get processed through it's lifetime. > The thread dies but the signal still remains in the singal queue. > Something triggeres the processing of the signal - sig_dispatch_pending() > in my case (which is called as part of pthread_sigmask()). As part of the > processing the 'tls' member of sigpacket is dereferenced but at that time > it is already invalid. > > I'll try to post a testcase ASAP which demonstrates the problem. Find the testcase attached. The interesting part starts when SIGUSR2 is send from the main thread.
Attachment:
sigpacket_bad_tls_crash.c
Description: Text document
-- 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/
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |