]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commit
refactor: replace O(N) alarm scan with O(1) sorted alarm queue
authorTulio A M Mendes <[email protected]>
Fri, 13 Feb 2026 22:34:04 +0000 (19:34 -0300)
committerTulio A M Mendes <[email protected]>
Fri, 13 Feb 2026 22:34:04 +0000 (19:34 -0300)
commitc9c0aae8d35cbe9cb25dc97fdb980257565ccfb1
treee9f507d23e2df79f893b7cd10c4f8b56c5d62ec4
parent2b756030a3675cf75a47a514e8b589e8db840bab
refactor: replace O(N) alarm scan with O(1) sorted alarm queue

Phase D1 complete — alarm delivery now uses a sorted doubly-linked
queue identical in design to the sleep queue.

- process.h: added alarm_next, alarm_prev, in_alarm_queue fields
- scheduler.c: added alarm_queue_insert/alarm_queue_remove helpers,
  alarm_head pointer, and public process_alarm_set() API
- process_wake_check: replaced O(N) scan of all processes with O(1)
  pop from sorted alarm queue head
- syscall.c: alarm() syscall now routes through process_alarm_set()
  which atomically manages the queue under sched_lock
- Alarm queue cleanup on process exit (process_exit_notify) and
  signal kill (SIG_KILL path)

20/20 smoke tests pass.
include/process.h
src/kernel/scheduler.c
src/kernel/syscall.c