pub async fn join(&self) {
        self.shutdown();

        // get handle mutex is held
        let handle = {
            let state = self.state.lock();
            state.completed_shutdown.clone()
        };

        // wait for completion while not holding the mutex to avoid
        // deadlocks
        handle.await.expect("Thread died?")
    }
/// Stops all subsequent task executions, and waits for the worker
/// thread to complete. Note this will shutdown all clones of this
/// `DedicatedExecutor` as well.
///
/// Only the first all to `join` will actually wait for the
/// executing thread to complete. All other calls to join will
/// complete immediately.
///
/// # Panic / Drop
/// [`DedicatedExecutor`] implements shutdown on [`Drop`]. You should just use this behavior and NOT call
/// [`join`](Self::join) manually during [`Drop`] or panics because this might lead to another panic, see
/// <https://github.com/rust-lang/futures-rs/issues/2575>.
Stops all subsequent task executions, and waits for the worker
thread to complete. Note this will shutdown all clones of this
`DedicatedExecutor` as well.

Only the first all to `join` will actually wait for the
executing thread to complete. All other calls to join will
complete immediately.
Stops all subsequent task executions and waits for the worker thread to complete . Note this will shutdown all clones of this ` DedicatedExecutor ` as well . Only the first all to ` join ` will actually wait for the executing thread to complete . All other calls to join will complete immediately .
pub async fn join(&self) {
        self.shutdown();
        // get handle mutex is held
        let handle = {
            let state = self.state.lock();
            state.completed_shutdown.clone()
        };
        // wait for completion while not holding the mutex to avoid
        // deadlocks
        handle.await.expect("Thread died?")
    }
pub async fn join ( & self ) { self . shutdown ( ) ; // get handle mutex is held let handle = { let state = self . state . lock ( ) ; state . completed_shutdown . clone ( ) } ; // wait for completion while not holding the mutex to avoid // deadlocks handle . await . expect ( " " ) }
Stops all subsequent task executions, and waits for the worker
thread to complete.
Stops all subsequent task executions and waits for the worker thread to complete .
&self
&self
panic / drop
[`DedicatedExecutor`] implements shutdown on [`Drop`]. You should just use this behavior and NOT call
[`join`](Self::join) manually during [`Drop`] or panics because this might lead to another panic, see
.
[ ` DedicatedExecutor ` ] implements shutdown on [ ` Drop ` ] . You should just use this behavior and NOT call [ ` join ` ] ( Self :: join ) manually during [ ` Drop ` ] or panics because this might lead to another panic see .