#[cfg(any(target_os = "linux", target_os = "macos", windows))] mod registry; #[cfg(not(any(target_os = "linux", target_os = "macos", windows)))] #[path = "unsupported.rs"] mod registry; #[cfg(any(target_os = "linux", target_os = "macos", windows))] use avril_subprocess as sys; mod signals; #[cfg(not(any(target_os = "linux", target_os = "macos", windows)))] pub use registry::Tree; pub use registry::init; #[cfg(any(target_os = "linux", target_os = "macos", windows))] pub use registry::supervision::Tree; /// Which process-wide signal duties the subprocess supervisor takes on. /// `Run` installs an interrupt handler; `Serve` and `Repl` leave interrupt /// to their own handlers (serve's shutdown, the REPL's eval interrupt). /// Terminate fate belongs to whoever claims it (serve's CLI listener); on /// unclaimed deliveries the supervisor stops children, waits briefly, then /// dies like the default disposition. #[derive(Clone, Copy)] pub enum SignalMode { Run, Serve, Repl, }