diff options
author | Gleb Balykov/Platform Lab /SRR/Staff Engineer/Samsung Electronics <g.balykov@samsung.com> | 2022-01-18 00:35:55 +0300 |
---|---|---|
committer | GitHub Enterprise <noreply-CODE@samsung.com> | 2022-01-18 06:35:55 +0900 |
commit | c9d19a35b19cfc708ed61eaaec470052baa79c57 (patch) | |
tree | a050c37dd5c7edd3f99299dafad5fa25e7256b65 | |
parent | 77c8af8a0969f6a7f139c99af074a7a8c9028025 (diff) | |
download | coreclr-c9d19a35b19cfc708ed61eaaec470052baa79c57.tar.gz coreclr-c9d19a35b19cfc708ed61eaaec470052baa79c57.tar.bz2 coreclr-c9d19a35b19cfc708ed61eaaec470052baa79c57.zip |
[Tizen] Workaround for undocumented EAGAIN returned from pthread_kill (#328)
This is partial cherry-pick of https://github.com/dotnet/runtime/pull/32167
Also, similar issue was fixed in mono: https://github.com/dotnet/runtime/issues/34132
-rw-r--r-- | src/pal/src/exception/signal.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/pal/src/exception/signal.cpp b/src/pal/src/exception/signal.cpp index 7e00483417..325a1501c7 100644 --- a/src/pal/src/exception/signal.cpp +++ b/src/pal/src/exception/signal.cpp @@ -689,7 +689,7 @@ PAL_ERROR InjectActivationInternal(CorUnix::CPalThread* pThread) { #ifdef INJECT_ACTIVATION_SIGNAL int status = pthread_kill(pThread->GetPThreadSelf(), INJECT_ACTIVATION_SIGNAL); - if (status != 0) + if ((status != 0) && (status != EAGAIN)) { // Failure to send the signal is fatal. There are only two cases when sending // the signal can fail. First, if the signal ID is invalid and second, @@ -958,4 +958,4 @@ void restore_signal_and_resend(int signal_id, struct sigaction* previousAction) { restore_signal(signal_id, previousAction); kill(gPID, signal_id); -}
\ No newline at end of file +} |