authorgravatar for quae@daurnimator.comdaurnimator <quae@daurnimator.com> 2019-12-22 12:09:21+11:00
committergravatar for quae@daurnimator.comdaurnimator <quae@daurnimator.com> 2019-12-22 20:20:58+11:00
logc31afc3736215ef68e7f838ede14c2a33828c9c7
tree498427a5a901671da863e5cbc26d84d4f80c2a0c
parent9577ff1c904daf7384197b3ee84923bdc18afc28
signature Commit is signed but in an unrecognized format.

std: remove high level linux sigprocmask wrappers


2 files changed, 7 insertions(+), 14 deletions(-)

lib/std/os.zig+7-2
......@@ -225,10 +225,15 @@ pub fn raise(sig: u8) RaiseError!void {
225225
226226 if (builtin.os == .linux) {
227227 var set: linux.sigset_t = undefined;
228 linux.blockAppSignals(&set);
228 // block application signals
229 _ = linux.sigprocmask(SIG_BLOCK, &linux.app_mask, &set);
230
229231 const tid = linux.syscall0(linux.SYS_gettid);
230232 const rc = linux.syscall2(linux.SYS_tkill, tid, sig);
231 linux.restoreSignals(&set);
233
234 // restore signal mask
235 _ = linux.sigprocmask(SIG_SETMASK, &set, null);
236
232237 switch (errno(rc)) {
233238 0 => return,
234239 else => |err| return unexpectedErrno(err),
lib/std/os/linux.zig-12
......@@ -697,18 +697,6 @@ pub fn sigaction(sig: u6, noalias act: *const Sigaction, noalias oact: ?*Sigacti
697697 return 0;
698698}
699699
700pub fn blockAllSignals(set: *sigset_t) void {
701 _ = syscall4(SYS_rt_sigprocmask, SIG_BLOCK, @ptrToInt(&all_mask), @ptrToInt(set), NSIG / 8);
702}
703
704pub fn blockAppSignals(set: *sigset_t) void {
705 _ = syscall4(SYS_rt_sigprocmask, SIG_BLOCK, @ptrToInt(&app_mask), @ptrToInt(set), NSIG / 8);
706}
707
708pub fn restoreSignals(set: *sigset_t) void {
709 _ = syscall4(SYS_rt_sigprocmask, SIG_SETMASK, @ptrToInt(set), 0, NSIG / 8);
710}
711
712700pub fn sigaddset(set: *sigset_t, sig: u6) void {
713701 const s = sig - 1;
714702 (set.*)[@intCast(usize, s) / usize.bit_count] |= @intCast(usize, 1) << (s & (usize.bit_count - 1));