authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-09-17 21:14:08-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2025-09-17 21:14:08-07:00
logd2e4ad613bc73527a29ea4813024c540d8f6c793
tree62fb95e4d11fc15911e4b9d58376e6cf67b9af99
parent0df89cd0e1896cced2289915acc906476bc980d1
parent6dbfba526f7b7cf1256c133d025b11409c97dda7
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #25217 from blblack/setsiderr

std.os.linux.setsid(): return raw syscall0 result

2 files changed, 9 insertions(+), 6 deletions(-)

lib/std/os/linux.zig+8-5
...@@ -1834,20 +1834,23 @@ pub fn setgroups(size: usize, list: [*]const gid_t) usize {...@@ -1834,20 +1834,23 @@ pub fn setgroups(size: usize, list: [*]const gid_t) usize {
1834 }1834 }
1835}1835}
18361836
1837pub fn setsid() pid_t {1837pub fn setsid() usize {
1838 return @bitCast(@as(u32, @truncate(syscall0(.setsid))));1838 return syscall0(.setsid);
1839}1839}
18401840
1841pub fn getpid() pid_t {1841pub fn getpid() pid_t {
1842 return @bitCast(@as(u32, @truncate(syscall0(.getpid))));1842 // Casts result to a pid_t, safety-checking >= 0, because getpid() cannot fail
1843 return @intCast(@as(u32, @truncate(syscall0(.getpid))));
1843}1844}
18441845
1845pub fn getppid() pid_t {1846pub fn getppid() pid_t {
1846 return @bitCast(@as(u32, @truncate(syscall0(.getppid))));1847 // Casts result to a pid_t, safety-checking >= 0, because getppid() cannot fail
1848 return @intCast(@as(u32, @truncate(syscall0(.getppid))));
1847}1849}
18481850
1849pub fn gettid() pid_t {1851pub fn gettid() pid_t {
1850 return @bitCast(@as(u32, @truncate(syscall0(.gettid))));1852 // Casts result to a pid_t, safety-checking >= 0, because gettid() cannot fail
1853 return @intCast(@as(u32, @truncate(syscall0(.gettid))));
1851}1854}
18521855
1853pub fn sigprocmask(flags: u32, noalias set: ?*const sigset_t, noalias oldset: ?*sigset_t) usize {1856pub fn sigprocmask(flags: u32, noalias set: ?*const sigset_t, noalias oldset: ?*sigset_t) usize {
lib/std/posix.zig+1-1
...@@ -7000,7 +7000,7 @@ pub const SetSidError = error{...@@ -7000,7 +7000,7 @@ pub const SetSidError = error{
7000pub fn setsid() SetSidError!pid_t {7000pub fn setsid() SetSidError!pid_t {
7001 const rc = system.setsid();7001 const rc = system.setsid();
7002 switch (errno(rc)) {7002 switch (errno(rc)) {
7003 .SUCCESS => return rc,7003 .SUCCESS => return @intCast(rc),
7004 .PERM => return error.PermissionDenied,7004 .PERM => return error.PermissionDenied,
7005 else => |err| return unexpectedErrno(err),7005 else => |err| return unexpectedErrno(err),
7006 }7006 }