diff options
Diffstat (limited to 'winsup/cygwin/cygtls.cc')
-rw-r--r-- | winsup/cygwin/cygtls.cc | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/winsup/cygwin/cygtls.cc b/winsup/cygwin/cygtls.cc index 310f2e637..6b7e0cd51 100644 --- a/winsup/cygwin/cygtls.cc +++ b/winsup/cygwin/cygtls.cc @@ -269,13 +269,8 @@ _cygtls::init_exception_handler (exception_handler *eh) At one point this was a loop (el.prev = ⪙). This outsmarted the above behaviour. Unfortunately this trick doesn't work anymore with Windows 2008, which irremediably gets into an endless loop, taking 100% - CPU. That's why we reverted to a normal SEH chain. - - On the bright side, Windows' behaviour is covered by POSIX: - - "If and when the function returns, if the value of sig was SIGFPE, - SIGILL, or SIGSEGV or any other implementation-defined value - corresponding to a computational exception, the behavior is undefined." */ + CPU. That's why we reverted to a normal SEH chain and changed the way + the exception handler returns to the application. */ el.prev = _except_list; _except_list = ⪙ } |