Skip to content

feat(libkernel): implement sigpending and sigsuspend - #4541

Closed
jagrat04 wants to merge 1 commit into
boykopovar:mainfrom
jagrat04:feat/libkernel-sigpending-sigsuspend
Closed

jagrat04 wants to merge 1 commit into
boykopovar:mainfrom
jagrat04:feat/libkernel-sigpending-sigsuspend

Conversation

@jagrat04

Copy link
Copy Markdown
Contributor

What

Fixes #3253. Refs #1578.

Carries pushkarreddyy's ready branch from #3253 rebased onto main with authorship intact.

Titles cataloged in #1578 and POSIX homebrew ports require signal set inspection and suspension exports: sigpending (NID hpoDTzy9Yy0) and sigsuspend (NID KZ-4qlqlpmo). While _sigprocmask, sigaction, and sigaltstack are present, sigpending and sigsuspend were absent in libkernel.

  • sigpending_nid_postfix: checks pointer for null (EFAULT 14); clears returned signal set (as no asynchronous pending signals queue is maintained); preserves guest errno.
  • sigsuspend_nid_postfix: checks mask pointer for null (EFAULT 14); names the mask in NotImplemented_nid_no_patch.
  • Technical debt documented in TechnicalDebt.md.

Tested

  • Extended core/libs/tests/GuestSignals.cpp unit test suite covering null pointer rejection, sentinel errno preservation, and NotImplemented_nid_no_patch throw.
  • python tools/check_conventions.py --base origin/main passed cleanly with 0 errors.

Checklist

  • Based on current main; no other open PR implements the same functions
  • 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 .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • AI-assisted: yes

@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Progress report (682ef0c → 0124a49)

📉 System libraries: 86.34% (-0.02%, +1 implemented, +1 declared functions)

✅ 1 implemented
Library Name
libkernel sigpending_nid_postfix
🆕 1 declared as stubs
Library Name
libkernel sigsuspend_nid_postfix

@github-actions github-actions Bot mentioned this pull request Oct 12, 2026
10 tasks done
@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
#4383 sigpending_nid_postfix
sigsuspend_nid_postfix
#4481 docs/dev/debt/libkernel.md L126-127
#4533 docs/dev/debt/libkernel.md L126-127

@pushkarreddyy

Copy link
Copy Markdown
Contributor

Hi @jagrat04, thank you for carrying! I had already reopened, rebased, and addressed review feedback (naming the mask in sigsuspend, documenting Dispatch drop semantics in TechnicalDebt.md, MinGW GCC fixes) in #4383 earlier today. Since #4383 is active and passing all CI checks, could you please close #4541 to resolve the duplicate PR overlap? Thank you!

@xXPBSXx

xXPBSXx commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

Windows test: head d74a08338 merged onto current main 2a5eca11c (clean merge, no conflicts). Windows 10, MinGW GCC (WinLibs), Ninja Release, -j2: full build 0 errors; ctest with the filter guest_signal: guest_signals passed, guest_signal_sets passed (2 test(s), 0 failed); python tools/check_conventions.py --base upstream/main passed. I did not run the new tests against main without the change.

AI-assisted (Claude Code).

@github-actions github-actions Bot added needs rebase Conflicts with main, rebase needed labels Oct 12, 2026
@oneandonlydean oneandonlydean self-assigned this Oct 12, 2026
@jagrat04
jagrat04 force-pushed the feat/libkernel-sigpending-sigsuspend branch from d74a083 to 0124a49 Compare October 12, 2026 19:27
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 12, 2026
@jagrat04

Copy link
Copy Markdown
Contributor Author

Closing in favor of active PR #4383 by @pushkarreddyy.

@jagrat04 jagrat04 closed this Oct 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

libkernel: implement sigpending and sigsuspend (#1578); branch and PR #3252 ready

4 participants