فهرست منبع

Kernel: Make usleep aware of dynamic tick length

On my system, ticks_per_second() returns 1280.
So Serenity was always 20% too fast when sleeping!
Ben Wiederhake 5 سال پیش
والد
کامیت
4a5a7b68eb
1فایلهای تغییر یافته به همراه1 افزوده شده و 1 حذف شده
  1. 1 1
      Kernel/Process.cpp

+ 1 - 1
Kernel/Process.cpp

@@ -2436,7 +2436,7 @@ int Process::sys$usleep(useconds_t usec)
     REQUIRE_PROMISE(stdio);
     REQUIRE_PROMISE(stdio);
     if (!usec)
     if (!usec)
         return 0;
         return 0;
-    u64 wakeup_time = Thread::current()->sleep(usec / 1000);
+    u64 wakeup_time = Thread::current()->sleep(usec * TimeManagement::the().ticks_per_second() / 1000000);
     if (wakeup_time > g_uptime)
     if (wakeup_time > g_uptime)
         return -EINTR;
         return -EINTR;
     return 0;
     return 0;