SchOS/kernel
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nexoniarz 6bfb367090 signals: a blocked signal stays pending instead of killing
sigsend() ended a process for a default-fatal signal (SIGUSR1, SIGTERM,
SIGINT...) on arrival, whatever its signal mask said. Blocking is
exactly the promise that it will not: the signal waits until it is
unblocked, or until the program takes it some other way -- which is
what signalfd is, and how this was found.

A blocked signal is now only made pending. If it is later unblocked
while still pending, deliver_signals() applies the default action
then. SIGKILL cannot be blocked, as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
2026-10-24 10:59:52 +02:00
..
acpi bug pass: whole console lines, a quiet SCI, an honest reserve warning 2026-10-23 16:03:33 +02:00
arch/x86_64 include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
core display: a 64-bit framebuffer address, no mirroring onto itself 2026-10-23 15:46:42 +02:00
dev bug pass: whole console lines, a quiet SCI, an honest reserve warning 2026-10-23 16:03:33 +02:00
drivers display: a 64-bit framebuffer address, no mirroring onto itself 2026-10-23 15:46:42 +02:00
fs include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
net include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
proc signals: a blocked signal stays pending instead of killing 2026-10-24 10:59:52 +02:00
sys signals: a blocked signal stays pending instead of killing 2026-10-24 10:59:52 +02:00
kernel.ld kernel: load at 16 MB, clear of what firmware keeps low 2026-10-24 00:13:53 +02:00