Lines Matching defs:cb
48 void MutexInit(DDCallback *cb, DDMutex *m) override;
49 void MutexBeforeLock(DDCallback *cb, DDMutex *m, bool wlock) override;
50 void MutexAfterLock(DDCallback *cb, DDMutex *m, bool wlock,
52 void MutexBeforeUnlock(DDCallback *cb, DDMutex *m, bool wlock) override;
53 void MutexDestroy(DDCallback *cb, DDMutex *m) override;
55 DDReport *GetReport(DDCallback *cb) override;
58 void ReportDeadlock(DDCallback *cb, DDMutex *m);
92 void DD::MutexInit(DDCallback *cb, DDMutex *m) {
94 m->stk = cb->Unwind();
103 void DD::MutexBeforeLock(DDCallback *cb,
105 DDLogicalThread *lt = cb->lt;
114 dd.addEdges(<->dd, m->id, cb->Unwind(), cb->UniqueTid());
115 ReportDeadlock(cb, m);
119 void DD::ReportDeadlock(DDCallback *cb, DDMutex *m) {
120 DDLogicalThread *lt = cb->lt;
152 void DD::MutexAfterLock(DDCallback *cb, DDMutex *m, bool wlock, bool trylock) {
153 DDLogicalThread *lt = cb->lt;
156 stk = cb->Unwind();
168 dd.addEdges(<->dd, m->id, stk ? stk : cb->Unwind(), cb->UniqueTid());
172 void DD::MutexBeforeUnlock(DDCallback *cb, DDMutex *m, bool wlock) {
173 // Printf("T%p MutexUnLock: %zx\n", cb->lt, m->id);
174 dd.onUnlock(&cb->lt->dd, m->id);
177 void DD::MutexDestroy(DDCallback *cb,
186 DDReport *DD::GetReport(DDCallback *cb) {
187 if (!cb->lt->report_pending)
189 cb->lt->report_pending = false;
190 return &cb->lt->rep;