Sleeps until a condition is met. Should be used when waiting for events such as data being written to a pipe. Returns [`SignalError::Interrupted`] if the wait was interrupted by a signal.
(
&self,
flags: WaitQueueFlags,
mutex: &'a Mutex<T>,
cond: F,
)