equal
deleted
inserted
replaced
56 // resets the marking information while the others busy wait. |
56 // resets the marking information while the others busy wait. |
57 for (uint32_t seqnum = Atomic::load_acquire(&_seqnum); |
57 for (uint32_t seqnum = Atomic::load_acquire(&_seqnum); |
58 seqnum != ZGlobalSeqNum; |
58 seqnum != ZGlobalSeqNum; |
59 seqnum = Atomic::load_acquire(&_seqnum)) { |
59 seqnum = Atomic::load_acquire(&_seqnum)) { |
60 if ((seqnum != seqnum_initializing) && |
60 if ((seqnum != seqnum_initializing) && |
61 (Atomic::cmpxchg(seqnum_initializing, &_seqnum, seqnum) == seqnum)) { |
61 (Atomic::cmpxchg(&_seqnum, seqnum, seqnum_initializing) == seqnum)) { |
62 // Reset marking information |
62 // Reset marking information |
63 _live_bytes = 0; |
63 _live_bytes = 0; |
64 _live_objects = 0; |
64 _live_objects = 0; |
65 |
65 |
66 // Clear segment claimed/live bits |
66 // Clear segment claimed/live bits |