Don't enforce SA_RESTART in non-main threads
* exceptions.cc (_cygtls::call_signal_handler): Disable enforcing SA_RESTART in non-main threads to allow returning with EINTR from system calls. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
325926031b
commit
95c5a3f6b7
@ -1,3 +1,9 @@
|
|||||||
|
2015-06-15 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* exceptions.cc (_cygtls::call_signal_handler): Disable enforcing
|
||||||
|
SA_RESTART in non-main threads to allow returning with EINTR from
|
||||||
|
system calls.
|
||||||
|
|
||||||
2015-06-11 Corinna Vinschen <corinna@vinschen.de>
|
2015-06-11 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 5.
|
* include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 5.
|
||||||
|
@ -1542,7 +1542,12 @@ _cygtls::call_signal_handler ()
|
|||||||
set_errno (this_errno);
|
set_errno (this_errno);
|
||||||
}
|
}
|
||||||
|
|
||||||
return this_sa_flags & SA_RESTART || (this != _main_tls);
|
/* FIXME: Since 2011 this return statement always returned 1 (meaning
|
||||||
|
SA_RESTART is effective) if the thread we're running in is not the
|
||||||
|
main thread. We're disabling this check to enable EINTR behaviour
|
||||||
|
on system calls not running in the main thread. It's not quite clear
|
||||||
|
if that has undesired side-effects, therefore this comment. */
|
||||||
|
return this_sa_flags & SA_RESTART;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
x
Reference in New Issue
Block a user