diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index bf253f748f..397b6a7cba 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -65,7 +65,7 @@ enum class NeedsBigProcessLock { S(create_inode_watcher, NeedsBigProcessLock::No) \ S(create_thread, NeedsBigProcessLock::No) \ S(dbgputstr, NeedsBigProcessLock::No) \ - S(detach_thread, NeedsBigProcessLock::Yes) \ + S(detach_thread, NeedsBigProcessLock::No) \ S(disown, NeedsBigProcessLock::No) \ S(dump_backtrace, NeedsBigProcessLock::No) \ S(dup2, NeedsBigProcessLock::No) \ diff --git a/Kernel/Syscalls/thread.cpp b/Kernel/Syscalls/thread.cpp index 457b52d519..0a317c49e7 100644 --- a/Kernel/Syscalls/thread.cpp +++ b/Kernel/Syscalls/thread.cpp @@ -125,7 +125,7 @@ void Process::sys$exit_thread(Userspace exit_value, Userspace stac ErrorOr Process::sys$detach_thread(pid_t tid) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); + VERIFY_NO_PROCESS_BIG_LOCK(this); TRY(require_promise(Pledge::thread)); auto thread = TRY(get_thread_from_thread_list(tid)); if (!thread->is_joinable())