pub fn take(&self) -> ArcList<T> {
        let mut list = self.list.load(SeqCst);
        loop {
            if list == 1 {
                break;
            }
            match self.list.compare_exchange(list, 0, SeqCst, SeqCst) {
                Ok(_) => break,
                Err(l) => list = l,
            }
        }
        ArcList {
            list: AtomicUsize::new(list),
            _marker: marker::PhantomData,
        }
    }
/// Atomically empties this list, returning a new owned copy which can be
/// used to iterate over the entries.
Atomically empties this list, returning a new owned copy which can be
used to iterate over the entries.
Atomically empties this list returning a new owned copy which can be used to iterate over the entries .
pub fn take(&self) -> ArcList<T> {
        let mut list = self.list.load(SeqCst);
        loop {
            if list == 1 {
                break;
            }
            match self.list.compare_exchange(list, 0, SeqCst, SeqCst) {
                Ok(_) => break,
                Err(l) => list = l,
            }
        }
        ArcList {
            list: AtomicUsize::new(list),
            _marker: marker::PhantomData,
        }
    }
pub fn take ( & self ) -> ArcList < T > { let mut list = self . list . load ( SeqCst ) ; loop { if list == 1 { break ; } match self . list . compare_exchange ( list , 0 , SeqCst , SeqCst ) { Ok ( _ ) => break , Err ( l ) => list = l , } } ArcList { list : AtomicUsize :: new ( list ) , _marker : marker :: PhantomData , } }
Atomically empties this list, returning a new owned copy which can be
used to iterate over the entries.
Atomically empties this list returning a new owned copy which can be used to iterate over the entries .
&self
&self