mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 00:22:57 -05:00
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>