reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

projects/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
  347   if (s->owner_tid == SyncVar::kInvalidTid) {
  352     TraceAddEvent(thr, thr->fast_state, EventTypeRUnlock, s->GetId());
  353     ReleaseImpl(thr, pc, &s->read_clock);
  354   } else if (s->owner_tid == thr->tid) {
  357     TraceAddEvent(thr, thr->fast_state, EventTypeUnlock, s->GetId());
  358     CHECK_GT(s->recursion, 0);
  359     s->recursion--;
  360     if (s->recursion == 0) {
  362       s->owner_tid = SyncVar::kInvalidTid;
  363       ReleaseStoreImpl(thr, pc, &s->clock);
  367   } else if (!s->IsFlagSet(MutexFlagBroken)) {
  368     s->SetFlags(MutexFlagBroken);
  371   thr->mset.Del(s->GetId(), write);
  372   if (common_flags()->detect_deadlocks && s->recursion == 0) {
  374     ctx->dd->MutexBeforeUnlock(&cb, &s->dd, write);
  376   u64 mid = s->GetId();
  377   s->mtx.Unlock();