Skip to content

Commit 2d0ddce

Browse files
authored
Merge pull request #17027 from Ratakor/master
std.os.linux: Add filled_sigset and pause()
2 parents ad6f8e3 + 8ce3379 commit 2d0ddce

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

lib/std/os.zig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ pub const cpu_set_t = system.cpu_set_t;
149149
pub const dev_t = system.dev_t;
150150
pub const dl_phdr_info = system.dl_phdr_info;
151151
pub const empty_sigset = system.empty_sigset;
152+
pub const filled_sigset = system.filled_sigset;
152153
pub const fd_t = system.fd_t;
153154
pub const fdflags_t = system.fdflags_t;
154155
pub const fdstat_t = system.fdstat_t;

lib/std/os/linux.zig

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1042,6 +1042,14 @@ pub fn nanosleep(req: *const timespec, rem: ?*timespec) usize {
10421042
return syscall2(.nanosleep, @intFromPtr(req), @intFromPtr(rem));
10431043
}
10441044

1045+
pub fn pause() usize {
1046+
if (@hasField(SYS, "pause")) {
1047+
return syscall0(.pause);
1048+
} else {
1049+
return syscall4(.ppoll, 0, 0, 0, 0);
1050+
}
1051+
}
1052+
10451053
pub fn setuid(uid: uid_t) usize {
10461054
if (@hasField(SYS, "setuid32")) {
10471055
return syscall1(.setuid32, uid);
@@ -3350,7 +3358,9 @@ pub const Sigaction = extern struct {
33503358
restorer: ?*const fn () callconv(.C) void = null,
33513359
};
33523360

3353-
pub const empty_sigset = [_]u32{0} ** @typeInfo(sigset_t).Array.len;
3361+
const sigset_len = @typeInfo(sigset_t).Array.len;
3362+
pub const empty_sigset = [_]u32{0} ** sigset_len;
3363+
pub const filled_sigset = [_]u32{(1 << (31 & (usize_bits - 1))) - 1} ++ [_]u32{0} ** (sigset_len - 1);
33543364

33553365
pub const SFD = struct {
33563366
pub const CLOEXEC = O.CLOEXEC;

0 commit comments

Comments
 (0)