This is the mail archive of the cygwin-developers@cygwin.com 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] |
I believe that I have found the root cause to the following: http://cygwin.com/ml/cygwin/2002-08/msg00381.html It seems that pthread_testcancel() will SEGV when called in a non-main thread or at least one driven by the SCM during service startup. See attached for a gdb backtrace. The following CVS commit seems to be the likely culprit: http://cygwin.com/ml/cygwin-cvs/2002-q3/msg00033.html which is consistent with the fact that 1.3.12 does not exhibit this problem but snapshots and CVS do. I annotated pthread::self() as follows: pthread * pthread::self () { pthread *p = (pthread *) TlsGetValue (MT_INTERFACE->thread_self_dwTlsIndex); debug_printf ("pthread::self: p = %x, i = %ld", p, MT_INTERFACE->thread_self_dwTlsIndex); return p; } When starting ipc-daemon, I get the following: 87 3097903 [unknown (0xD8C)] ipc-daemon 920 pthread::self: pthread::self: p = 0, i = 4 instead of something like the following (from a non-SCM test case): 85 121609 [main] open 2504 pthread::self: pthread::self: p = 610CD61C, i = 4 Note that p is 0 in the former and non-zero in the latter. Unfortunately, I'm not sure how to fix this problem. Any help will be greatly appreciated. Thanks, Jason
Attachment:
ipc-daemon.bt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |