You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On Posix operating systems (FreeBSD and Linux), the MPS handles barrier hits, and suspends and resumes threads, by installing signal handlers with sigaction(). The signal handlers may call libc functions like mprotect(), mmap() and so on, that set errno.
Note in particular that even the "safe" functions may modify errno; the signal-catching function, if not executing as an independent thread, should save and restore its value in order to avoid the possibility that delivery of a signal in between an error return from a function that sets errno and the subsequent examination of errno could result in the signal-catching function changing the value of errno.
This applies to the following signal handlers:
sigHandle() in protsgix.c
suspendSignalHandler() in pthrdext.c
resumeSignalHandler() in pthrdext.c (this can in theory call mps_lib_assert_fail() if the assertion fails, and in the hot and rash varieties the application can continue from the assertion failure)
The text was updated successfully, but these errors were encountered:
On Posix operating systems (FreeBSD and Linux), the MPS handles barrier hits, and suspends and resumes threads, by installing signal handlers with
sigaction()
. The signal handlers may call libc functions likemprotect()
,mmap()
and so on, that seterrno
.The Posix specification for
sigaction()
says:This applies to the following signal handlers:
sigHandle()
in protsgix.csuspendSignalHandler()
in pthrdext.cresumeSignalHandler()
in pthrdext.c (this can in theory callmps_lib_assert_fail()
if the assertion fails, and in the hot and rash varieties the application can continue from the assertion failure)The text was updated successfully, but these errors were encountered: