Struct std::thread::JoinHandle1.0.0 [] [src]

pub struct JoinHandle<T>(_);

An owned permission to join on a thread (block on its termination).

A JoinHandle detaches the child thread when it is dropped.

Due to platform restrictions, it is not possible to Clone this handle: the ability to join a child thread is a uniquely-owned permission.

This struct is created by the thread::spawn function and the thread::Builder::spawn method.

Examples

Creation from thread::spawn:

use std::thread;

let join_handle: thread::JoinHandle<_> = thread::spawn(|| {
    // some work here
});Run

Creation from thread::Builder::spawn:

use std::thread;

let builder = thread::Builder::new();

let join_handle: thread::JoinHandle<_> = builder.spawn(|| {
    // some work here
}).unwrap();Run

Methods

impl<T> JoinHandle<T>
[src]

Extracts a handle to the underlying thread.

Examples

#![feature(thread_id)]

use std::thread;

let builder = thread::Builder::new();

let join_handle: thread::JoinHandle<_> = builder.spawn(|| {
    // some work here
}).unwrap();

let thread = join_handle.thread();
println!("thread id: {:?}", thread.id());Run

Waits for the associated thread to finish.

If the child thread panics, Err is returned with the parameter given to panic.

Examples

use std::thread;

let builder = thread::Builder::new();

let join_handle: thread::JoinHandle<_> = builder.spawn(|| {
    // some work here
}).unwrap();
join_handle.join().expect("Couldn't join on the associated thread");Run

Trait Implementations

impl<T> Debug for JoinHandle<T>
1.15.0
[src]

Formats the value using the given formatter.

impl<T> JoinHandleExt for JoinHandle<T>
1.9.0
[src]

Extracts the raw pthread_t without taking ownership

Consumes the thread, returning the raw pthread_t Read more