Expand description
Custom RawWakerVTable implementation.
Each Waker holds an Arc<TaskHeader> cast to a raw *const ().
The four vtable functions implement the RawWaker contract:
| function | action |
|---|---|
clone_waker | Arc::clone — increments refcount |
wake | schedule task, consume (decrement) Arc |
wake_by_ref | schedule task, keep Arc alive |
drop_waker | Arc::from_raw then drop — decrements refcount |
Safety contract: the data pointer is always a valid Arc<TaskHeader> that
was created via Arc::into_raw. All four functions restore it to an Arc
before performing any operation, maintaining the reference count correctly.