Skip to content

feat(libSceAmpr): implement condition signal exports - #3657

Closed
MarcZX10 wants to merge 1 commit into
boykopovar:mainfrom
MarcZX10:feat/libSceAmpr-cnd-signal
Closed

MarcZX10 wants to merge 1 commit into
boykopovar:mainfrom
MarcZX10:feat/libSceAmpr-cnd-signal

Conversation

@MarcZX10

@MarcZX10 MarcZX10 commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

What

_Cnd_signal and _Cnd_init_with_name now operate on the libc-owned condition objects used by _Cnd_wait, _Cnd_broadcast and _Cnd_init. _Cnd_signal wakes one waiter; _Cnd_init_with_name initializes the same object as _Cnd_init and ignores the optional name. TechnicalDebt records that the inferred ABI and behavior still need console confirmation.

Commit f6266acb8 carries David's implementation from blawesom's #3499, retaining David as commit author and the cherry-pick source. The follow-up test commits preserve the two-waiter notify_one regression coverage, bound each waiter-state wait to five seconds, and set the CTest timeout to 20 seconds so a broken signal path cannot leave this test hanging indefinitely.

Tested

  • Linux x86_64, GCC 12.2, Release: built guest_ampr_threads_tests; guest_ampr_threads passed 3/3 consecutive runs on this head.
  • python3 tools/check_conventions.py --base upstream/main and git diff --check upstream/main...HEAD passed.
  • David's carried implementation had native Windows verification reported on issue #3342. The original feat(libSceAmpr): implement _Cnd_signal and _Cnd_init_with_name #3499 branch also had an independent Linux full-suite run reported as 520/520 on that issue. Those runs preceded the bounded-wait test-only changes in this PR; Windows and the named titles were not run here.

Checklist

  • Based on current main; the overlapping implementation from feat(libSceAmpr): implement _Cnd_signal and _Cnd_init_with_name #3499 is carried and credited in this PR
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt
  • No notes, investigation files or images added to the repository
  • New third-party code is a submodule built from source (not applicable)
  • Generic behaviour, not specific to one title
  • Depends on: none
  • AI-assisted: yes

Fixes #3342

@github-actions

Copy link
Copy Markdown

Progress report (a11c8f7 → 625196b)

📈 System libraries: 85.87% (+0.06%, +2 implemented functions)

✅ 2 implemented
Library Name
libSceAmpr _Cnd_init_with_name_nid_postfix
libSceAmpr _Cnd_signal_nid_postfix

@blawesom

Copy link
Copy Markdown
Contributor

Note for the maintainers: #3499 is an earlier open PR implementing these same two exports — it carries @screamm's commit from #3342 unchanged, is CLEAN with all checks green, and has dual-platform verification (the author's Windows run in #3342 plus an independent Linux full-suite pass, 829/829 including the Vulkan suites).

This PR looks like a clean independent implementation of the same issue, so whichever you prefer is fine — flagging only so the duplication is visible and one review isn't wasted.

@adriadam10

Copy link
Copy Markdown
Collaborator

Closing as a duplicate: #3499 (opened earlier, mergeable, CI green) already implements _Cnd_signal and _Cnd_init_with_name for #3342, touching the same files, and CONTRIBUTING asks that no two open PRs implement the same functions.

Thanks for the work and the test. If #3499 turns out not to be the one that lands, or you find a gap in it, feel free to reopen this or comment there.

@adriadam10 adriadam10 closed this Oct 11, 2026
@MarcZX10 MarcZX10 changed the title feat(libSceAmpr): implement _Cnd_signal and _Cnd_init_with_name feat(libSceAmpr): implement condition signal exports Oct 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

libSceAmpr: _Cnd_signal and _Cnd_init_with_name are stubs after #3079; fix branch ready

3 participants