On Fri, Feb 15, 2008 at 09:37:51AM +0100, klement2 wrote: >After excellently quick correction of pthread_kill when the argument >signal is zero >(by cgf), I have found another problem related to signal handling. The >code in attachment >demonstrates it ( because of pthread_kill, it must be run with >cygwin1-20080213.dll and newer ). >It seams that signal handlers for signals like SIGSEGV, SIGFPE are >called only once, >and the default handler is called for the second time the signal occures >in the process. >I'm not sure if the example is reasonable (e.g. pthread_exit in signal >handler...), >but works as expected on linux. > >Output from the example compiled and run in linux: > >Starting SIGSEGV1... >tid1=b7f1abb0 >Sigaction success, errno = 0 >Join1 ---> Result: 0, xx=8 >Ret. value ---> Result: 8, xx=8 >Good thread create ---> Result: 0, xx=8 >Starting SIGSEGV2... >tid2=b7519bb0 >Sigaction success, errno = 0 ><--------------------------- this is the end in cygwin (crash info >message)------------ >xx=9 >Join2 ---> Result: 0, xx=9 >Ret. value ---> Result: 9, xx=9
I made some changes (after receiving some insight from Corinna) and, AFAICT, the latest snapshot matches the above linux behavior. 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/