std: remove high level linux sigprocmask wrappers
parent
9577ff1c90
commit
c31afc3736
|
@ -225,10 +225,15 @@ pub fn raise(sig: u8) RaiseError!void {
|
|||
|
||||
if (builtin.os == .linux) {
|
||||
var set: linux.sigset_t = undefined;
|
||||
linux.blockAppSignals(&set);
|
||||
// block application signals
|
||||
_ = linux.sigprocmask(SIG_BLOCK, &linux.app_mask, &set);
|
||||
|
||||
const tid = linux.syscall0(linux.SYS_gettid);
|
||||
const rc = linux.syscall2(linux.SYS_tkill, tid, sig);
|
||||
linux.restoreSignals(&set);
|
||||
|
||||
// restore signal mask
|
||||
_ = linux.sigprocmask(SIG_SETMASK, &set, null);
|
||||
|
||||
switch (errno(rc)) {
|
||||
0 => return,
|
||||
else => |err| return unexpectedErrno(err),
|
||||
|
|
|
@ -697,18 +697,6 @@ pub fn sigaction(sig: u6, noalias act: *const Sigaction, noalias oact: ?*Sigacti
|
|||
return 0;
|
||||
}
|
||||
|
||||
pub fn blockAllSignals(set: *sigset_t) void {
|
||||
_ = syscall4(SYS_rt_sigprocmask, SIG_BLOCK, @ptrToInt(&all_mask), @ptrToInt(set), NSIG / 8);
|
||||
}
|
||||
|
||||
pub fn blockAppSignals(set: *sigset_t) void {
|
||||
_ = syscall4(SYS_rt_sigprocmask, SIG_BLOCK, @ptrToInt(&app_mask), @ptrToInt(set), NSIG / 8);
|
||||
}
|
||||
|
||||
pub fn restoreSignals(set: *sigset_t) void {
|
||||
_ = syscall4(SYS_rt_sigprocmask, SIG_SETMASK, @ptrToInt(set), 0, NSIG / 8);
|
||||
}
|
||||
|
||||
pub fn sigaddset(set: *sigset_t, sig: u6) void {
|
||||
const s = sig - 1;
|
||||
(set.*)[@intCast(usize, s) / usize.bit_count] |= @intCast(usize, 1) << (s & (usize.bit_count - 1));
|
||||
|
|
Loading…
Reference in New Issue