pub fn push(&self, t: T) -> usize {
        self.len.fetch_add(1, Ordering::Release);

        let mut seg_id = self.cur_seg.load(Ordering::Acquire);
        let mut tref = new_omd(t);
        let mut out;

        while {out = self.segs[seg_id as usize].push(&mut tref); out.is_none()} {
            self.cur_seg.fetch_max(seg_id + 1, Ordering::Release);
            seg_id = self.cur_seg.load(Ordering::Acquire);
        }

        seg_lid_to_id(seg_id, out.unwrap())
    }
/// Push an element to the end of `self` and return the new index.
Push an element to the end of `self` and return the new index.
Push an element to the end of ` self ` and return the new index .
pub fn push(&self, t: T) -> usize {
        self.len.fetch_add(1, Ordering::Release);
        let mut seg_id = self.cur_seg.load(Ordering::Acquire);
        let mut tref = new_omd(t);
        let mut out;
        while {out = self.segs[seg_id as usize].push(&mut tref); out.is_none()} {
            self.cur_seg.fetch_max(seg_id + 1, Ordering::Release);
            seg_id = self.cur_seg.load(Ordering::Acquire);
        }
        seg_lid_to_id(seg_id, out.unwrap())
    }
pub fn push ( & self , t : T ) -> usize { self . len . fetch_add ( 1 , Ordering :: Release ) ; let mut seg_id = self . cur_seg . load ( Ordering :: Acquire ) ; let mut tref = new_omd ( t ) ; let mut out ; while { out = self . segs [ seg_id as usize ] . push ( & mut tref ) ; out . is_none ( ) } { self . cur_seg . fetch_max ( seg_id + 1 , Ordering :: Release ) ; seg_id = self . cur_seg . load ( Ordering :: Acquire ) ; } seg_lid_to_id ( seg_id , out . unwrap ( ) ) }
Push an element to the end of `self` and return the new index.
Push an element to the end of ` self ` and return the new index .
&self
t
T
&self
t
T