pub fn shared_channel<T>() -> (Sender<T>, SharedReceiver<T>)