mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 21:07:34 +00:00
Kernel+LibC: Add sys$disown() for disowning child processes
This syscall allows a parent process to disown a child process, setting its parent PID to 0. Unparented processes are automatically reaped by the kernel upon exit, and no sys$waitid() is required. This will make it much nicer to do spawn-and-forget which is common in the GUI environment.
This commit is contained in:
parent
83a4fbf548
commit
7de831efc6
7 changed files with 79 additions and 1 deletions
25
Base/usr/share/man/man2/disown.md
Normal file
25
Base/usr/share/man/man2/disown.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
## Name
|
||||
|
||||
disown - disown a child process
|
||||
|
||||
## Synopsis
|
||||
|
||||
```**c++
|
||||
#include <serenity.h>
|
||||
|
||||
int disown(pid_t pid);
|
||||
```
|
||||
|
||||
## Description
|
||||
|
||||
`disown()` unparents a child process of the calling process. The child's parent PID is set to zero, which allows the kernel to automatically reap it upon death.
|
||||
|
||||
## Pledge
|
||||
|
||||
In pledged programs, the `proc` promise is required for this system call.
|
||||
|
||||
## Errors
|
||||
|
||||
* `ESRCH`: No process with PID `pid` was found.
|
||||
* `ECHILD`: The target process is not a child of the calling process.
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue