pub fn main<F>(spawn_closure: F)where F: Future<Output = ()> + Send + 'static,
run future and wait forever this is typically used in the server