소스 검색

Kernel: Disable big process lock for sys$getpid()

Brian Gianforcaro 4 년 전
부모
커밋
638598b15d
2개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 1 1
      Kernel/API/Syscall.h
  2. 1 1
      Kernel/Syscalls/process.cpp

+ 1 - 1
Kernel/API/Syscall.h

@@ -54,7 +54,7 @@ enum class NeedsBigProcessLock {
     S(geteuid, NeedsBigProcessLock::Yes)                    \
     S(geteuid, NeedsBigProcessLock::Yes)                    \
     S(getegid, NeedsBigProcessLock::Yes)                    \
     S(getegid, NeedsBigProcessLock::Yes)                    \
     S(getgid, NeedsBigProcessLock::Yes)                     \
     S(getgid, NeedsBigProcessLock::Yes)                     \
-    S(getpid, NeedsBigProcessLock::Yes)                     \
+    S(getpid, NeedsBigProcessLock::No)                      \
     S(getppid, NeedsBigProcessLock::Yes)                    \
     S(getppid, NeedsBigProcessLock::Yes)                    \
     S(getresuid, NeedsBigProcessLock::Yes)                  \
     S(getresuid, NeedsBigProcessLock::Yes)                  \
     S(getresgid, NeedsBigProcessLock::Yes)                  \
     S(getresgid, NeedsBigProcessLock::Yes)                  \

+ 1 - 1
Kernel/Syscalls/process.cpp

@@ -11,7 +11,7 @@ namespace Kernel {
 
 
 KResultOr<FlatPtr> Process::sys$getpid()
 KResultOr<FlatPtr> Process::sys$getpid()
 {
 {
-    VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)
+    VERIFY_NO_PROCESS_BIG_LOCK(this)
     REQUIRE_PROMISE(stdio);
     REQUIRE_PROMISE(stdio);
     return pid().value();
     return pid().value();
 }
 }