Просмотр исходного кода

Kernel: Remove big lock from sys$socket

With the implementation of the credentials object the socket syscall no
longer needs the big lock.
James Bellamy 2 лет назад
Родитель
Сommit
9c1ee8cbd1
2 измененных файлов с 2 добавлено и 2 удалено
  1. 1 1
      Kernel/API/Syscall.h
  2. 1 1
      Kernel/Syscalls/socket.cpp

+ 1 - 1
Kernel/API/Syscall.h

@@ -174,7 +174,7 @@ enum class NeedsBigProcessLock {
     S(sigreturn, NeedsBigProcessLock::Yes)                  \
     S(sigsuspend, NeedsBigProcessLock::Yes)                 \
     S(sigtimedwait, NeedsBigProcessLock::Yes)               \
-    S(socket, NeedsBigProcessLock::Yes)                     \
+    S(socket, NeedsBigProcessLock::No)                      \
     S(socketpair, NeedsBigProcessLock::No)                  \
     S(stat, NeedsBigProcessLock::No)                        \
     S(statvfs, NeedsBigProcessLock::No)                     \

+ 1 - 1
Kernel/Syscalls/socket.cpp

@@ -33,7 +33,7 @@ static void setup_socket_fd(Process::OpenFileDescriptions& fds, int fd, NonnullL
 
 ErrorOr<FlatPtr> Process::sys$socket(int domain, int type, int protocol)
 {
-    VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
+    VERIFY_NO_PROCESS_BIG_LOCK(this);
     REQUIRE_PROMISE_FOR_SOCKET_DOMAIN(domain);
 
     auto credentials = this->credentials();