]> 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)
commit47bd7f8b67e5d312dc50c0ba4d9a1693e9ad2374
tree13bf76f623b5503ec0e3e297a732052ec969446e
parent76bf370635e1b55d833e199007c4fbf37f8c3df6
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