Home | History | Annotate | Download | only in drd

Lines Matching refs:DRD_

39 static void DRD_(cond_cleanup)(struct cond_info* p);
44 static Bool DRD_(s_report_signal_unlocked) = True;
45 static Bool DRD_(s_trace_cond);
50 void DRD_(cond_set_report_signal_unlocked)(const Bool r)
52 DRD_(s_report_signal_unlocked) = r;
55 void DRD_(cond_set_trace)(const Bool trace_cond)
57 DRD_(s_trace_cond) = trace_cond;
61 void DRD_(cond_initialize)(struct cond_info* const p, const Addr cond)
67 p->cleanup = (void(*)(DrdClientobj*))(DRD_(cond_cleanup));
75 * DRD_(clientobj_remove)().
77 static void DRD_(cond_cleanup)(struct cond_info* p)
83 q = &(DRD_(clientobj_get)(p->mutex, ClientMutex)->mutex);
86 DRD_(thread_get_running_tid)(),
108 .tid = DRD_(thread_get_running_tid)(),
123 p = &(DRD_(clientobj_get)(cond, ClientCondvar)->cond);
127 if (DRD_(clientobj_present)(cond, cond + 1))
133 p = &(DRD_(clientobj_add)(cond, ClientCondvar)->cond);
134 DRD_(cond_initialize)(p, cond);
138 struct cond_info* DRD_(cond_get)(const Addr cond)
141 return &(DRD_(clientobj_get)(cond, ClientCondvar)->cond);
145 void DRD_(cond_pre_init)(const Addr cond)
149 if (DRD_(s_trace_cond))
150 DRD_(trace_msg)("[%d] cond_init cond 0x%lx",
151 DRD_(thread_get_running_tid)(), cond);
153 p = DRD_(cond_get)(cond);
156 CondErrInfo cei = { .tid = DRD_(thread_get_running_tid)(), .cond = cond };
168 void DRD_(cond_post_destroy)(const Addr cond, const Bool destroy_succeeded)
172 if (DRD_(s_trace_cond))
173 DRD_(trace_msg)("[%d] cond_destroy cond 0x%lx",
174 DRD_(thread_get_running_tid)(), cond);
176 p = DRD_(cond_get)(cond);
179 CondErrInfo cei = { .tid = DRD_(thread_get_running_tid)(), .cond = cond };
190 CondErrInfo cei = { .tid = DRD_(thread_get_running_tid)(), .cond = cond };
200 DRD_(clientobj_remove)(p->a1, ClientCondvar);
207 void DRD_(cond_pre_wait)(const Addr cond, const Addr mutex)
212 if (DRD_(s_trace_cond))
213 DRD_(trace_msg)("[%d] cond_pre_wait cond 0x%lx",
214 DRD_(thread_get_running_tid)(), cond);
219 CondErrInfo cei = { .tid = DRD_(thread_get_running_tid)(), .cond = cond };
235 = { .tid = DRD_(thread_get_running_tid)(),
245 q = DRD_(mutex_get)(p->mutex);
247 && q->owner == DRD_(thread_get_running_tid)() && q->recursion_count > 0)
250 MutexErrInfo MEI = { DRD_(thread_get_running_tid)(),
260 DRD_(not_a_mutex)(p->mutex);
269 void DRD_(cond_post_wait)(const Addr cond)
273 if (DRD_(s_trace_cond))
274 DRD_(trace_msg)("[%d] cond_post_wait cond 0x%lx",
275 DRD_(thread_get_running_tid)(), cond);
277 p = DRD_(cond_get)(cond);
281 DRD_(thread_get_running_tid)(), cond, 0, DRD_INVALID_THREADID
305 const DrdThreadId drd_tid = DRD_(VgThreadIdToDrdThreadId)(vg_tid);
311 if (DRD_(s_report_signal_unlocked)
312 && ! DRD_(mutex_is_locked_by)(cond_p->mutex, drd_tid))
318 CondRaceErrInfo cei = { .tid = DRD_(thread_get_running_tid)(),
340 CondErrInfo cei = { .tid = DRD_(thread_get_running_tid)(), .cond = cond };
349 void DRD_(cond_pre_signal)(Addr const cond)
353 p = DRD_(cond_get)(cond);
354 if (DRD_(s_trace_cond))
355 DRD_(trace_msg)("[%d] cond_signal cond 0x%lx",
356 DRD_(thread_get_running_tid)(), cond);
358 tl_assert(DRD_(pthread_cond_initializer));
359 if (!p && VG_(memcmp)((void*)cond, (void*)DRD_(pthread_cond_initializer),
360 DRD_(pthread_cond_initializer_size)) != 0)
369 cond_signal(DRD_(thread_get_running_tid)(), p);
373 void DRD_(cond_pre_broadcast)(Addr const cond)
377 if (DRD_(s_trace_cond))
378 DRD_(trace_msg)("[%d] cond_broadcast cond 0x%lx",
379 DRD_(thread_get_running_tid)(), cond);
381 p = DRD_(cond_get)(cond);
382 tl_assert(DRD_(pthread_cond_initializer));
383 if (!p && VG_(memcmp)((void*)cond, (void*)DRD_(pthread_cond_initializer),
384 DRD_(pthread_cond_initializer_size)) != 0)
393 cond_signal(DRD_(thread_get_running_tid)(), p);