Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › posix › raise Public Function raise Doc Source Public Function std.posix.raise
pub fn raise (sig : SIG ) RaiseError !void Params File posix.zig: 350
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374 pub fn raise (sig : SIG ) RaiseError !void {
if (builtin .link_libc ) {
switch (errno (system .raise (sig ))) {
.SUCCESS => return ,
else => |err | return unexpectedErrno (err ),
}
}
if (native_os == .linux ) {
// Block all signals so a `fork` (from a signal handler) between the gettid() and kill() syscalls
// cannot trigger an extra, unexpected, inter-process signal. Signal paranoia inherited from Musl.
const filled = linux .sigfillset ();
var orig : sigset_t = undefined ;
sigprocmask (SIG .BLOCK , &filled , &orig );
const rc = linux .tkill (linux .gettid (), sig );
sigprocmask (SIG .SETMASK , &orig , null );
switch (errno (rc )) {
.SUCCESS => return ,
else => |err | return unexpectedErrno (err ),
}
}
@compileError ("std.posix.raise unimplemented for this target" );
}