Struct crossbeam_utils::thread::ScopedJoinHandle [−][src]
pub struct ScopedJoinHandle<'scope, T> { /* fields omitted */ }
Expand description
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>
[src]
pub fn join(self) -> Result<T>
[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();
Trait Implementations
impl<T> AsRawHandle for ScopedJoinHandle<'_, T>
[src]
impl<T> AsRawHandle for ScopedJoinHandle<'_, T>
[src]fn as_raw_handle(&self) -> RawHandle
[src]
fn as_raw_handle(&self) -> RawHandle
[src]Extracts the raw handle, without taking any ownership.
impl<T> Debug for ScopedJoinHandle<'_, T>
[src]
impl<T> Debug for ScopedJoinHandle<'_, T>
[src]impl<T> IntoRawHandle for ScopedJoinHandle<'_, T>
[src]
impl<T> IntoRawHandle for ScopedJoinHandle<'_, T>
[src]fn into_raw_handle(self) -> RawHandle
[src]
fn into_raw_handle(self) -> RawHandle
[src]Consumes this object, returning the raw underlying handle. Read more