mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-28 12:05:06 +00:00
siginterrupt is a libSceLibcInternal export (the public SDK's stub table has it there, not in the kernel tables) and FreeBSD 11.4's lib/libc/gen/siginterrupt.c reads the signal's disposition, sets or clears the signal's bit in _sigintr and SA_RESTART, and installs the disposition again. libc cannot call libkernel, so, as the pthread hooks do, libc keeps a registered sigaction and the address of the _sigintr set, and libkernel registers both from a static initializer when it loads. A call before that throws; the set is written without libkernel's registration lock, as FreeBSD's libc does. Builds on #8866, which adds the set. Co-Authored-By: Claude Fable 5.1 <[email protected]>