diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index be3824ade..7bf4c81f4 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2008-02-27 Corinna Vinschen + + * cygtls.cc (_cygtls::init_exception_handler): Fix comment. + 2008-02-27 Corinna Vinschen * (struct __DIR_cache): Switch order of members so that the buffer 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 = ⪙ }