Kernel: Implement the alarm() syscall.

This commit is contained in:
Andreas Kling 2019-06-07 11:30:07 +02:00
commit d194ce828d
Notes: sideshowbarker 2024-07-19 13:42:00 +09:00
3 changed files with 19 additions and 4 deletions

View file

@ -188,8 +188,13 @@ bool Scheduler::pick_next()
auto exit_status = Process::reap(process);
dbgprintf("reaped unparented process %s(%u), exit status: %u\n", name.characters(), pid, exit_status);
}
return IterationDecision::Continue;
}
return true;
if (process.m_alarm_deadline && g_uptime > process.m_alarm_deadline) {
process.m_alarm_deadline = 0;
process.send_signal(SIGALRM, nullptr);
}
return IterationDecision::Continue;
});
// Dispatch any pending signals.