INNER CODE UNIT · Rust

async_drop_waits_for_completion

pamburus/hl · crates/lifecycle/src/lib.rs:147

    fn async_drop_waits_for_completion() {
        let started = Arc::new(Mutex::new(false));
        let started_clone = Arc::clone(&started);
        let completed = Arc::new(Mutex::new(false));
        let completed_clone = Arc::clone(&completed);

        struct SlowDrop {
            started: Arc<Mutex<bool>>,
            completed: Arc<Mutex<bool>>,
        }

        impl Drop for SlowDrop {
            fn drop(&mut self) {
                *self.started.lock().unwrap() = true;
                std::thread::sleep(std::time::Duration::from_millis(50));
                *self.completed.lock().unwrap() = true;
            }
        }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…