pub fn event_channel<E>(
    channel_capacity: usize
) -> (EventSender<E>, EventSubscriber<E>) where
    E: Clone