Lines Matching full:epoch
136 static void DoResetImpl(uptr epoch) {
139 CHECK_EQ(ctx->global_epoch, epoch);
233 void DoReset(ThreadState* thr, uptr epoch) SANITIZER_NO_THREAD_SAFETY_ANALYSIS {
236 if (UNLIKELY(epoch == 0))
237 epoch = ctx->global_epoch;
238 if (UNLIKELY(epoch != ctx->global_epoch)) {
239 // Epoch can't change once we've locked the first slot.
245 DPrintf("#%d: DoReset epoch=%lu\n", thr ? thr->tid : -1, epoch);
246 DoResetImpl(epoch);
257 uptr epoch;
260 epoch = ctx->global_epoch;
272 if (slot->epoch() != kEpochLast) {
279 DoReset(thr, epoch);
288 slot->SetEpoch(slot->thr->fast_state.epoch());
291 if (slot->epoch() != kEpochLast)
303 Epoch epoch = EpochInc(slot->epoch());
304 CHECK(!EpochOverflow(epoch));
305 slot->SetEpoch(epoch);
307 thr->fast_state.SetEpoch(epoch);
316 thr->clock.Set(slot->sid, epoch);
317 slot->journal.PushBack({thr->tid, epoch});
347 CHECK(exiting || thr->fast_state.epoch() == kEpochLast);
348 slot->SetEpoch(thr->fast_state.epoch());
369 if (LIKELY(thr == slot->thr && thr->fast_state.epoch() != kEpochLast))
1018 // This can happen if the slot has kEpochLast epoch and another thread
1021 // was called with the slot locked and epoch already at kEpochLast,