fn enqueue_node(&self, node: &ReadinessNode) -> bool {
        // This is the 1024cores.net intrusive MPSC queue [1] "push" function.

        let node_ptr = node as *const _ as *mut _;

        // Relaxed used as the ordering is "released" when swapping
        // `head_readiness`
        node.next_readiness.store(ptr::null_mut(), Relaxed);

        unsafe {
            let prev = self.head_readiness.swap(node_ptr, AcqRel);

            debug_assert!((*prev).next_readiness.load(Relaxed).is_null());

            (*prev).next_readiness.store(node_ptr, Release);

            prev == self.sleep_marker()
        }
    }
/// Push the node into the readiness queue
Push the node into the readiness queue
Push the node into the readiness queue
fn enqueue_node(&self, node: &ReadinessNode) -> bool {
        // This is the 1024cores.net intrusive MPSC queue [1] "push" function.
        let node_ptr = node as *const _ as *mut _;
        // Relaxed used as the ordering is "released" when swapping
        // `head_readiness`
        node.next_readiness.store(ptr::null_mut(), Relaxed);
        unsafe {
            let prev = self.head_readiness.swap(node_ptr, AcqRel);
            debug_assert!((*prev).next_readiness.load(Relaxed).is_null());
            (*prev).next_readiness.store(node_ptr, Release);
            prev == self.sleep_marker()
        }
    }
fn enqueue_node ( & self , node : & ReadinessNode ) -> bool { // This is the 1024cores.net intrusive MPSC queue [1] "push" function. let node_ptr = node as * const _ as * mut _ ; // Relaxed used as the ordering is "released" when swapping // `head_readiness` node . next_readiness . store ( ptr :: null_mut ( ) , Relaxed ) ; unsafe { let prev = self . head_readiness . swap ( node_ptr , AcqRel ) ; debug_assert ! ( ( prev ) next_readiness load ( Relaxed ) is_null ( ) ) ; ( * prev ) . next_readiness . store ( node_ptr , Release ) ; prev == self . sleep_marker ( ) } }
Push the node into the readiness queue
Push the node into the readiness queue
&self
node
&ReadinessNode