diff options
author | Maciej <sppmacd@pm.me> | 2021-12-29 16:22:22 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2022-01-21 13:44:36 +0100 |
commit | ccb83744342956f8900395fd3aca99a8a003da95 (patch) | |
tree | 06b0b717093694b1021131603a793a7ae47fa596 /Userland/Libraries/LibCore | |
parent | 0badfd7b3239b9ffac0e910a0d463ae6c9f9bd80 (diff) | |
download | serenity-ccb83744342956f8900395fd3aca99a8a003da95.zip |
LibCore: Add Core::System wrapper for disown()
Diffstat (limited to 'Userland/Libraries/LibCore')
-rw-r--r-- | Userland/Libraries/LibCore/System.cpp | 10 | ||||
-rw-r--r-- | Userland/Libraries/LibCore/System.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/Userland/Libraries/LibCore/System.cpp b/Userland/Libraries/LibCore/System.cpp index 46766b0c90..d360c4d4f5 100644 --- a/Userland/Libraries/LibCore/System.cpp +++ b/Userland/Libraries/LibCore/System.cpp @@ -20,6 +20,10 @@ #include <termios.h> #include <unistd.h> +#ifdef __serenity__ +# include <serenity.h> +#endif + #define HANDLE_SYSCALL_RETURN_VALUE(syscall_name, rc, success_value) \ if ((rc) < 0) { \ return Error::from_syscall(syscall_name, rc); \ @@ -125,6 +129,12 @@ ErrorOr<long> ptrace(int request, pid_t tid, void* address, void* data) return Error::from_syscall("ptrace"sv, -errno); return rc; } + +ErrorOr<void> disown(pid_t pid) +{ + int rc = ::disown(pid); + HANDLE_SYSCALL_RETURN_VALUE("disown", rc, {}); +} #endif #ifndef AK_OS_BSD_GENERIC diff --git a/Userland/Libraries/LibCore/System.h b/Userland/Libraries/LibCore/System.h index c13a938d55..60ffea982b 100644 --- a/Userland/Libraries/LibCore/System.h +++ b/Userland/Libraries/LibCore/System.h @@ -41,6 +41,7 @@ ErrorOr<void> ptrace_peekbuf(pid_t tid, void const* tracee_addr, Bytes destinati ErrorOr<void> setgroups(Span<gid_t const>); ErrorOr<void> mount(int source_fd, StringView target, StringView fs_type, int flags); ErrorOr<long> ptrace(int request, pid_t tid, void* address, void* data); +ErrorOr<void> disown(pid_t pid); #endif #ifndef AK_OS_BSD_GENERIC |