#include "Pledge.h" #include "sys/Syscall.h" #include "thread/Scheduler.h" #include Result sys_usleep(Registers*, SyscallArgs args) { useconds_t us = (useconds_t)args[0]; auto* current = Scheduler::current(); TRY(check_pledge(current, Promise::p_stdio)); // FIXME: Allow usleep() to use a more precise resolution. if (us < 1000) return 0; kernel_sleep(us / 1000); return current->sleep_ticks_left; }