pub fn bounded_async<T, S>(
    len: usize,
    s: S
) -> (AsyncSender<T, S>, AsyncReceiver<T, S>) where
    T: Transmittable,
    S: AsyncSynchronizer