3 Commits
Author SHA1 Message Date
Hussein Kadhim b3522206cb fix(libkernel): reject alarm seconds beyond the itimer range
FreeBSD alarm() is setitimer(ITIMER_REAL), and setitimer fails with EINVAL
for it_value.tv_sec above INT32_MAX / 2, so alarm() returns -1 and leaves
the pending alarm alone. alarm(UINT_MAX) armed an alarm decades away and
returned the old remaining time instead.

(cherry picked from commit 2dea16d07d4e0b36e4a3d1eebe3b5c3ffb739807)
2026-10-18 15:06:37 +00:00
milescovielloandClaude Opus 5.5 9f704dc1eb fix(libkernel): read ITIMER_VIRTUAL and ITIMER_PROF as disarmed in getitimer
setitimer refuses to arm the CPU interval timers and already reads and
disarms them as zero, so they are never armed. getitimer threw for them
instead of reporting that state, as FreeBSD's kern_getitimer does for a
timer that is not set.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 06:17:58 +00:00
lorkydey 1fc9b4d93f feat(libkernel): query real-time alarms with getitimer 2026-10-11 15:30:33 +02:00