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

References

projects/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cpp
   69   dd.clear();
   98   if (!dd.nodeBelongsToCurrentEpoch(m->id))
   99     m->id = dd.newNode(reinterpret_cast<uptr>(m));
  100   dd.ensureCurrentEpoch(&lt->dd);
  107   if (dd.hasAllEdges(&lt->dd, m->id)) return;  // We already have all edges.
  110   if (dd.isHeld(&lt->dd, m->id))
  112   if (dd.onLockBefore(&lt->dd, m->id)) {
  114     dd.addEdges(&lt->dd, m->id, cb->Unwind(), cb->UniqueTid());
  122   uptr len = dd.findPathToLock(&lt->dd, m->id, path, ARRAY_SIZE(path));
  136     DDMutex *m0 = (DDMutex*)dd.getData(from);
  137     DDMutex *m1 = (DDMutex*)dd.getData(to);
  141     dd.findEdge(from, to, &stk_from, &stk_to, &unique_tid);
  158   if (dd.onFirstLock(&lt->dd, m->id, stk))
  160   if (dd.onLockFast(&lt->dd, m->id, stk))
  166     CHECK(!dd.isHeld(&lt->dd, m->id));
  168     dd.addEdges(&lt->dd, m->id, stk ? stk : cb->Unwind(), cb->UniqueTid());
  169   dd.onLockAfter(&lt->dd, m->id, stk);
  174   dd.onUnlock(&cb->lt->dd, m->id);
  181   if (dd.nodeBelongsToCurrentEpoch(m->id))
  182     dd.removeNode(m->id);