()
| 1007 | // As in `wake`, this publishes no data of its own; it only needs the |
| 1008 | // READY -> WOKEN transition to be atomic. Hence, again, the `Relaxed` |
| 1009 | // ordering. The future's state is ordered by the poll's `Release` store |
| 1010 | // and the enqueue/dequeue handoff, not by this swap. |
| 1011 | if this.state.swap(WOKEN, Ordering::Relaxed) == READY { |
| 1012 | // Clone the waker, convert it into a job-ref and queue it. |
| 1013 | let this = ManuallyDrop::into_inner(this.clone()); |
| 1014 | Worker::with_current(|worker| this.schedule(worker)); |
| 1015 | } |
| 1016 | } |
| 1017 | |
| 1018 | /// Frees the waker. |
| 1019 | /// |
| 1020 | /// # Safety |
| 1021 | /// |
| 1022 | /// `this` must be a pointer produced by `Arc::into_raw` on an `Arc<Self>`. |
| 1023 | /// |
nothing calls this directly
no test coverage detected