reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
219 TraceAddEvent(thr, thr->fast_state, EventTypeUnlock, s->GetId()); 222 if (!SANITIZER_GO && (s->recursion == 0 || s->owner_tid != thr->tid)) { 222 if (!SANITIZER_GO && (s->recursion == 0 || s->owner_tid != thr->tid)) { 223 if (flags()->report_mutex_bugs && !s->IsFlagSet(MutexFlagBroken)) { 224 s->SetFlags(MutexFlagBroken); 228 rec = (flagz & MutexFlagRecursiveUnlock) ? s->recursion : 1; 229 s->recursion -= rec; 230 if (s->recursion == 0) { 232 s->owner_tid = SyncVar::kInvalidTid; 233 ReleaseStoreImpl(thr, pc, &s->clock); 238 thr->mset.Del(s->GetId(), true); 239 if (common_flags()->detect_deadlocks && s->recursion == 0 && 242 ctx->dd->MutexBeforeUnlock(&cb, &s->dd, true); 244 u64 mid = s->GetId(); 245 s->mtx.Unlock();