pub fn oneshot<T>() -> (Sender<T>, Receiver<T>)
Creates a oneshot channel (bounded channel with a limit of 1 message)