#[cfg(unix)]
pub mod unix_signal;
#[cfg(unix)]
pub use unix_signal::{signal, Signal, SignalKind};
#[cfg(unix)]
#[allow(unused_imports)]
pub(crate) use unix_signal::{on_signal_readable, SIGNAL_TOKEN};
#[cfg(windows)]
mod windows_signal {
use std::future::Future;
use std::io;
use std::pin::Pin;
use std::task::{Context, Poll};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SignalKind {
Interrupt,
Terminate,
}
pub struct Signal {
kind: SignalKind,
}
impl Future for Signal {
type Output = SignalKind;
fn poll(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<Self::Output> {
Poll::Pending
}
}
pub fn signal(kind: SignalKind) -> io::Result<Signal> {
Ok(Signal { kind })
}
}
#[cfg(windows)]
pub use windows_signal::{signal, Signal, SignalKind};