pub fn pop(&mut self) -> Option<Arc<Node<T>>> {
        let head = *self.list.get_mut();
        if head == 0 || head == 1 {
            return None;
        }
        let head = unsafe { Arc::from_raw(head as *const Node<T>) };
        *self.list.get_mut() = head.next.load(SeqCst);
        // At this point, the node is out of the list, so store `false` so we
        // can enqueue it again and see further changes.
        assert!(head.enqueued.swap(false, SeqCst));
        Some(head)
    }
/// Removes the head of the list of nodes, returning `None` if this is an
/// empty list.
Removes the head of the list of nodes, returning `None` if this is an
empty list.
Removes the head of the list of nodes returning ` None ` if this is an empty list .
pub fn pop(&mut self) -> Option<Arc<Node<T>>> {
        let head = *self.list.get_mut();
        if head == 0 || head == 1 {
            return None;
        }
        let head = unsafe { Arc::from_raw(head as *const Node<T>) };
        *self.list.get_mut() = head.next.load(SeqCst);
        // At this point, the node is out of the list, so store `false` so we
        // can enqueue it again and see further changes.
        assert!(head.enqueued.swap(false, SeqCst));
        Some(head)
    }
pub fn pop ( & mut self ) -> Option < Arc < Node < T > > > { let head = * self . list . get_mut ( ) ; if head == 0 || head == 1 { return None ; } let head = unsafe { Arc :: from_raw ( head as * const Node < T > ) } ; * self . list . get_mut ( ) = head . next . load ( SeqCst ) ; // At this point, the node is out of the list, so store `false` so we // can enqueue it again and see further changes. assert ! ( head enqueued swap ( false SeqCst ) ) ; Some ( head ) }
Removes the head of the list of nodes, returning `None` if this is an
empty list.
Removes the head of the list of nodes returning ` None ` if this is an empty list .
&mut self
&mut self