diff --git a/kernel/kernel/Process.cpp b/kernel/kernel/Process.cpp index ac965e29..53a54c58 100644 --- a/kernel/kernel/Process.cpp +++ b/kernel/kernel/Process.cpp @@ -1045,9 +1045,6 @@ namespace Kernel int set_bits = 0; for (;;) { - if (arguments->timeout && SystemTimer::get().ms_since_boot() >= timedout_ms) - break; - auto update_fds = [&](int fd, fd_set* source, fd_set* dest, bool (Inode::*func)() const) { @@ -1079,6 +1076,9 @@ namespace Kernel if (set_bits > 0) break; + if (arguments->timeout && SystemTimer::get().ms_since_boot() >= timedout_ms) + break; + LockFreeGuard free(m_process_lock); SystemTimer::get().sleep(1); }