Struct crossbeam::thread::ScopedJoinHandle [−][src]
pub struct ScopedJoinHandle<'scope, T> { /* fields omitted */ }
A handle that can be used to join its scoped thread.
This struct is created by the Scope::spawn
method and the
ScopedThreadBuilder::spawn
method.
Implementations
impl<'_, T> ScopedJoinHandle<'_, T>
[src]
impl<'_, T> ScopedJoinHandle<'_, T>
[src]pub fn join(self) -> Result<T, Box<dyn Any + 'static + Send, Global>>
[src]
Waits for the thread to finish and returns its result.
If the child thread panics, an error is returned.
Panics
This function may panic on some platforms if a thread attempts to join itself or otherwise may create a deadlock with joining threads.
Examples
use crossbeam_utils::thread; thread::scope(|s| { let handle1 = s.spawn(|_| println!("I'm a happy thread :)")); let handle2 = s.spawn(|_| panic!("I'm a sad thread :(")); // Join the first thread and verify that it succeeded. let res = handle1.join(); assert!(res.is_ok()); // Join the second thread and verify that it panicked. let res = handle2.join(); assert!(res.is_err()); }).unwrap();
pub fn thread(&self) -> &Thread
[src]
Returns a handle to the underlying thread.
Examples
use crossbeam_utils::thread; thread::scope(|s| { let handle = s.spawn(|_| println!("A child thread is running")); println!("The child thread ID: {:?}", handle.thread().id()); }).unwrap();
Trait Implementations
impl<'_, T> Debug for ScopedJoinHandle<'_, T>
[src]
impl<'_, T> Debug for ScopedJoinHandle<'_, T>
[src]impl<'_, T> JoinHandleExt for ScopedJoinHandle<'_, T>
[src]
impl<'_, T> JoinHandleExt for ScopedJoinHandle<'_, T>
[src]