pub fn unsafe_create_shared_session<S, Fut>(
    executor1: impl FnOnce(Receiver<(SenderOnce<()>, SenderOnce<S>)>) -> Fut + Send + 'static
) -> SharedSession<S> where
    S: SharedProtocol,
    Fut: Future<Output = ()> + Send