I just saw that the result after returning from a synchronous signal is undefined. So any behavior seems be OK. I'd still encourage to unify the behavior of 32-bit and 64-bit code. (See my other mail.) Best regards Thomas Am 26.04.2018 um 13:01 schrieb Houder: > On Thu, 26 Apr 2018 12:52:54, Thomas Zimmermann wrote: > >> Hi >> >> Am 26.04.2018 um 12:45 schrieb Houder: >>>> The expected behavior is that an installed signal handler runs exactly >>>> once for a signal and the OS terminates the program if the handler >>>> returns. This works on 32-bit Cygwin. From my observation, Cygwin 64 >>>> differs in the follow ways: >>> =20 >>> .. uhm, unless SA_RESETHAND (sa_flags) has been specified, I expect the >>> handler to be invoked again and again ... >> >> What I mean is that the installed signal handler is re-called constantly >> for the same HW exception (div-by-zero in this case). It is as if >> there's an endless loop around the signal-handler function. > > After the invocation of the handler, the program continues with the code > that attempts 'to divide by zero'. > > As result of that, the handler is invoked again. > > Henri > >> Best regards >> Thomas > > > -- > Problem reports: http://cygwin.com/problems.html > FAQ: http://cygwin.com/faq/ > Documentation: http://cygwin.com/docs.html > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > -- Implement thread-safe and fault-tolerant software in C: visit picotm.org -- GnuPG: http://tdz.users.sourceforge.net/tdz.asc Fingerprint: 16FF F599 82F8 E5AA 18C6 5220 D9DA D7D4 4EF1 DF08 Website: tzimmermann.org