[][src]Function crossbeam_utils::thread::scope

pub fn scope<'env, F, R>(f: F) -> Result<R> where
    F: FnOnce(&Scope<'env>) -> R, 

Creates a new Scope for scoped thread spawning.

No matter what happens, before the Scope is dropped, it is guaranteed that all the unjoined spawned scoped threads are joined.

thread::scope() returns Ok(()) if all the unjoined spawned threads did not panic. It returns Err(e) if one of them panics with e. If many of them panic, it is still guaranteed that all the threads are joined, and thread::scope() returns Err(e) with e from a panicking thread.


Creating and using a scope:

crossbeam_utils::thread::scope(|scope| {
    scope.spawn(|_| println!("Exiting scope"));
    scope.spawn(|_| println!("Running child thread in scope"));