You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
libSceAmpr: _Cnd_signal and _Cnd_init_with_name are stubs after #3079; fix branch ready #3342
_Cnd_signal and _Cnd_init_with_name (libSceAmpr, Export.cpp) are NotImplemented_nid_no_patch stubs now that #3079 gave libc the Dinkumware _Cnd_* family. Deathloop (PPSA01670), Minecraft Legends and GTA III Definitive Edition import them.
Fix branch ready:screamm:feat/ampr-cnd-signal (e21484de, one commit on maina4b0b16b). I cannot open it as a PR because of the intake check; anyone eligible is welcome to carry it, keeping the commit as is.
_Cnd_signal(pthread_cond**) uses the pointer-to-slot ABI the feat(libc): implement Dinkumware mutex and condition exports #3079 review established and a new libc helper SignalCondition_nid_no_patch (in Threads.cpp) that wakes one waiter of the condition objects libc's _Cnd_init creates and returns _Thrd_success, like the merged _Cnd_broadcast; bad handles throw the same invalid_argument as libc. _Cnd_init_with_name(pthread_cond**, const char*) calls libc's _Cnd_init and ignores the name, following fpPS4's reverse-engineered PS4 _Mtx_init_with_name where the name only names the pthread object. _Thrd_id keeps throwing: no public source settles the PS5 return form. All recorded in TechnicalDebt.
guest_ampr_threads gains a waiter woken by signal on a named condition, two waiters where one signal wakes exactly one, signal with no waiters, a null name, a plain _Cnd_init handle, interop with libc _Cnd_broadcast/_Cnd_destroy, and the error cases.
Tested on Windows 11 Pro 26220, WinLibs MinGW-w64 GCC 15.2.0 r7, Ninja, Release, BUILD_TESTING=ON, full build including libs: guest_ampr_threads and guest_libc_threads 3/3; ctest -j8 -E "^agc_driver_|^video_out_flip" 507/507 (with the #3329 test fix applied locally so the tree builds); with main's Export.cpp the extended Ampr test fails; tools/check_conventions.py --base main and git diff --check pass. Not run on Linux. The "wakes exactly one" check uses a 50 ms window and would misfire only on a spurious host wakeup.
Written with Claude Code assistance (implementation by a subagent, reviewed and validated in this session).
I carried David’s implementation from #3499 into a current-main branch with his commit authorship preserved, then added bounded waiter setup (5 seconds) and a 20-second CTest timeout. The focused Linux/GCC 12.2 Release test passes 3/3. The #3657 PR had already been closed as a duplicate; GitHub will not reopen it after its branch was force-pushed, so I have not opened a replacement while #3499 remains open. I asked #3499’s author whether they would prefer the consolidated branch as the review target; otherwise the timeout change can be cherry-picked into #3499. The Windows/full-suite evidence in this issue remains attributed to its reporters.
Activity
blawesom commentedon Oct 11, 2026
Independent verification on Linux (the gap noted in the report): CachyOS, kernel 7.2.9, GCC 16.2.1, Ninja, Release,
BUILD_TESTING=ON.e21484deonto currentmain(the branch was 150+ commits behind): the commit applies cleanly, no conflicts.tools/check_conventions.py --base origin/mainandgit diff --checkpass.guest_ampr_threadsandguest_libc_threadspass (the 50 ms "wakes exactly one" window held).ctest -j8 -E "^agc_driver_|^video_out_flip"): 520/520 passed.The rebased branch is available at
blawesom:verify/3342for anyone carrying — the commit is otherwise unchanged.MarcZX10 commentedon Oct 11, 2026
I carried David’s implementation from #3499 into a current-main branch with his commit authorship preserved, then added bounded waiter setup (5 seconds) and a 20-second CTest timeout. The focused Linux/GCC 12.2 Release test passes 3/3. The #3657 PR had already been closed as a duplicate; GitHub will not reopen it after its branch was force-pushed, so I have not opened a replacement while #3499 remains open. I asked #3499’s author whether they would prefer the consolidated branch as the review target; otherwise the timeout change can be cherry-picked into #3499. The Windows/full-suite evidence in this issue remains attributed to its reporters.
oneandonlydean commentedon Oct 11, 2026
Closing: fixed by #3499.