Skip to main content

dope_sys/thread/signal/
mod.rs

1use std::os::fd;
2
3pub mod raw;
4
5pub trait Signal: fd::AsFd {
6    type Error;
7
8    /// Consumes a pending signal after descriptor readiness. The caller retains
9    /// sole consumption authority between observing readiness and this call.
10    fn wait(&self) -> Result<(), Self::Error>;
11}
12
13/// Complete acquisition-stage diagnostics shared by native signal receivers.
14#[derive(Debug)]
15pub enum AcquireFault {
16    MaskBlock(crate::Errno),
17    SignalFd(crate::Errno),
18    QueueOpen(crate::Errno),
19    QueueCloexec(crate::Errno),
20    Register(crate::Errno),
21    Ignore(crate::Errno),
22}
23
24const _: () = {
25    assert!(std::mem::size_of::<AcquireFault>() == 8);
26    assert!(std::mem::align_of::<AcquireFault>() == std::mem::align_of::<crate::Errno>());
27    assert!(std::mem::size_of::<Result<(), AcquireFault>>() == 8);
28};
29
30/// Exact failure to restore the policy retained by a signal receiver.
31#[derive(Debug)]
32pub enum ReleaseFault {
33    Mask(crate::Errno),
34    Disposition(crate::Errno),
35}