signals of type SIGSEGV handled only once (in multithreaded process)

Fri Feb 15 10:03:00 GMT 2008

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
but works as expected on linux.

Output from the example compiled and run in linux:

Starting SIGSEGV1...
Sigaction success, errno = 0
Join1                ---> Result: 0, xx=8
Ret. value           ---> Result: 8, xx=8
Good thread create   ---> Result: 0, xx=8
Starting SIGSEGV2...
Sigaction success, errno = 0
<--------------------------- this is the end in cygwin (crash info
Join2                ---> Result: 0, xx=9
Ret. value           ---> Result: 9, xx=9

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sigpk4.c
URL: <>
-------------- next part --------------
Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list