AnyPS5/core/libs
Merijn 51b6079b5b fix(libkernel): no allocation while the target is suspended; own the wait count
The APC delivery was allocated after SuspendThread, so a target holding
the allocator lock deadlocked the raising thread; it is now allocated
before the suspend. The wait count a raise checks lived in the target's
thread_local storage and dangled once the thread exited; it is now a
member of PthreadPrivate, which TimedWait counts into through a
thread-local pointer bound when the thread starts, and a raise on a
thread that already finished returns ESRCH. TechnicalDebt gets one line
per unverified choice: Windows only, the FreeBSD ucontext layout, the
signal mask, the YMM upper halves, and delivery to threads outside
TimedWait.

AI-assisted: yes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 21:10:25 +02:00
..
nid fix(libs): keep a $ORIGIN runpath in the patched prx libraries 2026-10-05 20:20:14 +02:00
prx fix(libkernel): no allocation while the target is suspended; own the wait count 2026-10-07 21:10:25 +02:00
tests fix(libkernel): no allocation while the target is suspended; own the wait count 2026-10-07 21:10:25 +02:00
CMakeLists.txt Merge pull request #732 from alfalfa-star/fix/prx-runpath 2026-10-07 16:45:29 +13:00
HitLog.hpp style(prx): apply CONVENTIONS.md to misc PRX additions 2026-09-29 04:24:39 +03:00
SceShaders.hpp feat(libs): libSce types impl + shaders refactor 2026-09-08 10:20:57 +03:00
SceTypes.hpp feat(userservice): implement foreground user, registered list, user colour and NP account id 2026-10-06 23:42:15 +02:00