mirror of
https://github.com/RGBCube/serenity
synced 2025-05-28 17:15:09 +00:00
Kernel: Allow Thread::sleep for more than 388 days
Because Thread::sleep is an internal interface, it's easy to check that there are only few callers: Process::sys$sleep, usleep, and nanosleep are happy with this increased size, because now they support the entire range of their arguments (assuming small-ish values for ticks_per_second()). SyncTask doesn't care. Note that the old behavior wasn't "cap out at 388 days", which would have been reasonable. Instead, the code resulted in unsigned overflow, meaning that a very long sleep would "on average" end after about 194 days, sometimes much quicker.
This commit is contained in:
parent
76c135ddcf
commit
d8c8820ee9
2 changed files with 2 additions and 2 deletions
|
@ -220,7 +220,7 @@ void Thread::relock_process(bool did_unlock)
|
|||
process().big_lock().lock();
|
||||
}
|
||||
|
||||
u64 Thread::sleep(u32 ticks)
|
||||
u64 Thread::sleep(u64 ticks)
|
||||
{
|
||||
ASSERT(state() == Thread::Running);
|
||||
u64 wakeup_time = g_uptime + ticks;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue