reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
168 s->UpdateFlags(flagz); 170 TraceAddEvent(thr, thr->fast_state, EventTypeLock, s->GetId()); 172 if (s->owner_tid == SyncVar::kInvalidTid) { 173 CHECK_EQ(s->recursion, 0); 174 s->owner_tid = thr->tid; 175 s->last_lock = thr->fast_state.raw(); 176 } else if (s->owner_tid == thr->tid) { 177 CHECK_GT(s->recursion, 0); 178 } else if (flags()->report_mutex_bugs && !s->IsFlagSet(MutexFlagBroken)) { 179 s->SetFlags(MutexFlagBroken); 182 const bool first = s->recursion == 0; 183 s->recursion += rec; 186 AcquireImpl(thr, pc, &s->clock); 187 AcquireImpl(thr, pc, &s->read_clock); 188 } else if (!s->IsFlagSet(MutexFlagWriteReentrant)) { 191 thr->mset.Add(s->GetId(), true, thr->fast_state.epoch()); 198 ctx->dd->MutexBeforeLock(&cb, &s->dd, true); 199 ctx->dd->MutexAfterLock(&cb, &s->dd, true, flagz & MutexFlagTryLock); 201 u64 mid = s->GetId(); 202 s->mtx.Unlock(); 204 s = 0;