Struct signal_hook::iterator::backend::SignalIterator
source · [−]pub struct SignalIterator<SD, E: Exfiltrator> { /* private fields */ }
Expand description
An infinite iterator of received signals.
Implementations
sourceimpl<SD, E: Exfiltrator> SignalIterator<SD, E>
impl<SD, E: Exfiltrator> SignalIterator<SD, E>
sourcepub fn new<R>(signals: SD) -> Self where
SD: BorrowMut<SignalDelivery<R, E>>,
R: 'static + AsRawFd + Send + Sync,
pub fn new<R>(signals: SD) -> Self where
SD: BorrowMut<SignalDelivery<R, E>>,
R: 'static + AsRawFd + Send + Sync,
Create a new infinite iterator for signals registered with the passed
in SignalDelivery
instance.
sourcepub fn poll_signal<R, F>(
&mut self,
has_signals: &mut F
) -> PollResult<E::Output> where
SD: BorrowMut<SignalDelivery<R, E>>,
R: 'static + AsRawFd + Send + Sync,
F: FnMut(&mut R) -> Result<bool, Error>,
pub fn poll_signal<R, F>(
&mut self,
has_signals: &mut F
) -> PollResult<E::Output> where
SD: BorrowMut<SignalDelivery<R, E>>,
R: 'static + AsRawFd + Send + Sync,
F: FnMut(&mut R) -> Result<bool, Error>,
Return a signal if there is one or tell the caller that there is none at the moment.
You have to pass in a callback which checks the underlying reading end of the pipe if
there may be any pending signals. This callback may or may not block. If the callback
returns true
this method will try to fetch the next signal and return it as a
PollResult::Signal
. If the callback returns false
the method will return
PollResult::Pending
and assume it will be called again at a later point in time.
The callback may be called any number of times by this function.
If the iterator was closed by the close
method of the associtated
Handle
this method will return PollResult::Closed
.
Auto Trait Implementations
impl<SD, E> RefUnwindSafe for SignalIterator<SD, E> where
E: RefUnwindSafe,
SD: RefUnwindSafe,
<E as Exfiltrator>::Storage: RefUnwindSafe,
impl<SD, E> Send for SignalIterator<SD, E> where
SD: Send,
impl<SD, E> Sync for SignalIterator<SD, E> where
SD: Sync,
impl<SD, E> Unpin for SignalIterator<SD, E> where
SD: Unpin,
impl<SD, E> UnwindSafe for SignalIterator<SD, E> where
E: RefUnwindSafe,
SD: UnwindSafe,
<E as Exfiltrator>::Storage: RefUnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more