AnyPS5/core/libs/prx/libkernel
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
..
Aio/src feat(libkernel): Aio batch submit, wait, cancel and delete 2026-10-06 08:11:07 +02:00
AppMetadata fix(libkernel): read defaultLanguage from localizedParameters 2026-10-05 22:48:06 +02:00
Apr feat(libs): implement the AMM PRT commands 2026-10-05 15:45:28 -05:00
DirectMemory Merge pull request #994 from CnRJay/fix/map-no-overwrite-enomem 2026-10-07 15:31:12 +13:00
Equeue feat(libkernel): implement the sceKernelGetEvent* field accessors 2026-10-02 10:46:15 +02:00
EventFlag/src feat(runtime): timed waits, sync primitive fixes, heap and RTC fixes, unattended-run switches 2026-09-26 19:00:39 -07:00
File feat(libkernel): sceKernelReadv, Writev, Preadv and Pwritev 2026-10-06 07:33:51 +02:00
Module/src build(windows): guard NOMINMAX before including windows.h 2026-10-06 14:57:48 +02:00
Pthread fix(libkernel): no allocation while the target is suspended; own the wait count 2026-10-07 21:10:25 +02:00
Semaphore Merge pull request #315 from RomainROCH/codex/fix-semaphore-overflow 2026-10-04 14:01:19 +13:00
Socket Merge remote-tracking branch 'upstream/main' into feat/libkernel-sendmsg-recvmsg 2026-10-05 20:23:13 -05:00
SyncOnAddress/src feat(libkernel): implement sceKernelSyncOnAddressWait8 and sceKernelSyncOnAddressWait16 2026-10-06 04:30:12 +05:30
System/src fix(libkernel): no allocation while the target is suspended; own the wait count 2026-10-07 21:10:25 +02:00
Time fix(libkernel): no allocation while the target is suspended; own the wait count 2026-10-07 21:10:25 +02:00
CMakeLists.txt Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/kernel-raise-exception-windows 2026-10-07 07:45:49 +02:00
KernelErrors.hpp refactor(kernel): share SCE kernel error codes through KernelErrors.hpp 2026-09-27 13:32:28 +07:00
Unimplemented.cpp feat(libkernel): implement sceKernelReleaseFlexibleMemory (#952) 2026-10-07 10:20:07 +13:00