AnyPS5/core/libs/prx/libkernel/Pthread/include
VitzS7 28063f1951 feat(libkernel): wait for pending guest signals in the signal waits
Before: raise, kill and pthread_kill delivered a signal at once or failed
with EINVAL, nothing stayed pending, and pause, sigwait, sigwaitinfo and
sigtimedwait called NotImplemented_nid_no_patch.

Now: a process-wide pending set holds signals 1 to 128. A signal raised
while it is blocked stays pending and is delivered when _sigprocmask
unblocks it, taken by sigwait, sigwaitinfo or sigtimedwait, or delivered by
pause, which runs its handler on the calling thread and returns -1 with
EINTR. pthread_kill to another thread leaves the signal pending for
whichever thread waits for it and answers ESRCH for a handle that is not a
live guest thread. sigtimedwait follows FreeBSD's sigtimedwait(2): EAGAIN
on timeout, EINVAL for a tv_nsec outside 0 to 1000000000 while nothing is
pending, and an indefinite wait with a null timeout.
2026-10-12 17:47:33 -03:00
..
Cancel.hpp fix(libkernel): leave a once initializer's own cleanup handlers alone when it throws 2026-10-12 07:49:09 +00:00
Cond.hpp feat(libkernel): impl pthread condition variables + posix thread attribute queries 2026-09-27 11:43:37 +03:00
Mutex.hpp feat(libkernel): implement posix mutex locking and timed waits 2026-09-27 11:43:37 +03:00
Pthread.hpp feat(libkernel): wait for pending guest signals in the signal waits 2026-10-12 17:47:33 -03:00
Rwlock.hpp feat(libkernel): implement the pthread_rwlock try and timed lock functions 2026-10-04 17:13:36 +02:00
ThreadLifecycle.hpp fix(libkernel): run pthread key destructors before thread release 2026-10-11 12:21:40 -04:00
WindowsThreadLocal.hpp fix(libkernel): keep Unity GC delivery out of MinGW TLS waits 2026-10-10 03:06:40 +03:00