unsafe fn drop_waker<W: Wake + Send + Sync + 'static>(waker: *const ()) {
        unsafe { Arc::decrement_strong_count(waker as *const W) };
    }
A thread-safe reference-counting pointer. 'Arc' stands for 'Atomically
Reference Counted'.

The type `Arc<T>` provides shared ownership of a value of type `T`,
allocated in the heap. Invoking [`clone`][clone] on `Arc` produces
a new `Arc` instance, which points to the same allocation on the heap as the
source `Arc`, while increasing a reference count. When the last `Arc`
pointer to a given allocation is destroyed, the value stored in that allocation (often
referred to as "inner value") is also dropped.

Shared references in Rust disallow mutation by default, and `Arc` is no
exception: you cannot generally obtain a mutable reference to something
inside an `Arc`. If you need to mutate through an `Arc`, use
[`Mutex`][mutex], [`RwLock`][rwlock], or one of the [`Atomic`][atomic]
benchmarks/haystacks/code/rust-library.rs