AnyPS5/docs/dev
David 774f21845d feat(libkernel): implement pthread_cond_reltimedwait_np
Add pthread_cond_reltimedwait_np (K953PF5u6Pc; computed with
tools/nid_names.py and matching aerolib.csv) as scePthreadCondTimedwait
with POSIX error numbers: ETIMEDOUT when the relative timeout expires,
EPERM when the caller does not hold the mutex, and the mutex held again on
return in every waiting case.

Titles: Porpoise PPSA99764 and RetroArch PPSA99169 import it.
Predicted from relink registry order, not observed: Porpoise stops with
"FAIL: unresolved ELF import K953PF5u6Pc from libkernel.prx" (registry
index 384; RetroArch index 490). No call site is resolved in the registry.

The third argument is a relative timeout in microseconds, not a
struct timespec. FreeBSD 11.4 libthr (8c639945a44588f6cfdddfb057bb5aad88735da0)
has no such function. shadPS4 (3a9f57265d28975658f1ca941daa5c879c7a74bd,
src/core/libraries/kernel/threads/condvar.cpp:229-234, 445, 467-468)
registers posix_pthread_cond_reltimedwait_np(cond, mutex, u64 usec) for this
NID and the same function for scePthreadCondTimedwait (BmMjYxmew1w), whose
microsecond argument this repository already implements. The width follows
the SCE twin's 32-bit SceKernelUseconds, as sem_reltimedwait_np does, not
shadPS4's u64. There is no timespec to validate, so no EINVAL case.
Recorded in TechnicalDebt.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit c86ec8417d12f5b12136b0f06eae06493b0e7a62)
2026-10-11 23:53:37 +02:00
..
ARCHITECTURE.md docs(architecture): describe APR and AMM command buffer queues 2026-10-11 19:56:25 +02:00
BUILD.md Merge pull request #3705 from MarcZX100/fix/asan-guest-arena-window-3634 2026-10-11 23:53:19 +02:00
CONVENTIONS.md refactor(docs): separated user and dev in docs + compatibility file 2026-09-28 22:58:17 +03:00
HW_ORACLE.md feat(shader): follow FP16_OVFL in every f16 result 2026-10-10 04:32:38 -03:00
PROGRESS.md fix(progress): match stub calls across whitespace 2026-10-11 15:06:06 +03:00
TechnicalDebt.md feat(libkernel): implement pthread_cond_reltimedwait_np 2026-10-11 23:53:37 +02:00