Ver Fonte

Kernel: kill() syscall should support sending a signal to yourself.

Andreas Kling há 6 anos atrás
pai
commit
258f4671ea
1 ficheiros alterados com 5 adições e 1 exclusões
  1. 5 1
      Kernel/Process.cpp

+ 5 - 1
Kernel/Process.cpp

@@ -1419,7 +1419,11 @@ int Process::sys$kill(pid_t pid, int signal)
         // FIXME: Send to all processes.
         ASSERT(pid != -1);
     }
-    ASSERT(pid != current->pid()); // FIXME: Support this scenario.
+    if (pid == m_pid) {
+        send_signal(signal, this);
+        Scheduler::yield();
+        return 0;
+    }
     Process* peer = nullptr;
     {
         InterruptDisabler disabler;