fn drop(&mut self) {
        if !self.root.destroy_waiter_taken() {
            let destroy_waiter = self.root.take_destroy_waiter();
            let local_component_runner_task = self.local_component_runner_task.take();
            fasync::Task::spawn(async move {
                // move the local component runner task into this block
                let _local_component_runner_task = local_component_runner_task;
                // There's nothing to be done if we fail to destroy the child, perhaps someone
                // else already destroyed it for us. Ignore any error we could get here.
                let _ = destroy_waiter.await;
            })
            .detach();
        }
    }
/// To ensure local components are shutdown in an orderly manner (i.e. after their dependent
/// clients) upon `drop`, keep the local_component_runner_task alive in an async task until the
/// destroy_waiter synchronously destroys the realm.
To ensure local components are shutdown in an orderly manner  upon `drop`, keep the local_component_runner_task alive in an async task until the
destroy_waiter synchronously destroys the realm.
To ensure local components are shutdown in an orderly manner upon ` drop ` keep the local_component_runner_task alive in an async task until the destroy_waiter synchronously destroys the realm .
fn drop(&mut self) {
        if !self.root.destroy_waiter_taken() {
            let destroy_waiter = self.root.take_destroy_waiter();
            let local_component_runner_task = self.local_component_runner_task.take();
            fasync::Task::spawn(async move {
                // move the local component runner task into this block
                let _local_component_runner_task = local_component_runner_task;
                // There's nothing to be done if we fail to destroy the child, perhaps someone
                // else already destroyed it for us. Ignore any error we could get here.
                let _ = destroy_waiter.await;
            })
            .detach();
        }
    }
fn drop ( & mut self ) { if ! self . root . destroy_waiter_taken ( ) { let destroy_waiter = self . root . take_destroy_waiter ( ) ; let local_component_runner_task = self . local_component_runner_task . take ( ) ; fasync :: Task :: spawn ( async move { // move the local component runner task into this block let _local_component_runner_task = local_component_runner_task ; // There's nothing to be done if we fail to destroy the child, perhaps someone // else already destroyed it for us. Ignore any error we could get here. let _ = destroy_waiter . await ; } ) . detach ( ) ; } }
To ensure local components are shutdown in an orderly manner (i.e.
To ensure local components are shutdown in an orderly manner ( i . e .
&mut self
&mut self