Lines Matching defs:trace
85 Trace* trace = &thr->tctx->trace;
86 if (trace->parts_allocated == max_parts ||
90 if (part && part->trace) {
91 Trace* trace1 = part->trace;
93 part->trace = nullptr;
103 if (trace->parts_allocated < max_parts) {
104 trace->parts_allocated++;
119 DCHECK(part->trace);
120 part->trace = nullptr;
127 if (auto trace = part->trace)
128 CHECK_EQ(trace->parts.PopFront(), part);
150 auto trace = &tctx->trace;
151 Lock lock(&trace->mtx);
153 auto parts = &trace->parts;
157 local = local || part == trace->local_head;
164 // Set the trace position to the end of the current part
166 // to a new slot and allocate a new trace part.
170 // slot/trace mutexes that we hold here.
180 trace->local_head = parts->Front();
185 if (trace->parts_allocated > trace->parts.Size()) {
187 trace->parts_allocated - trace->parts.Size();
188 trace->parts_allocated = trace->parts.Size();
327 auto* trace = &thr->tctx->trace;
329 Lock l(&trace->mtx);
330 auto* parts = &trace->parts;
331 // The trace can be completely empty in an unlikely event
333 // in ThreadStart and did not trace any events yet.
336 thr->tctx->trace.local_head = nullptr;
917 Trace *trace = &thr->tctx->trace;
920 auto *part = trace->parts.Back();
921 DPrintf("#%d: TraceSwitchPart enter trace=%p parts=%p-%p pos=%p\n", thr->tid,
922 trace, trace->parts.Front(), part, pos);
925 // We can get here when we still have space in the current trace part.
953 TracePart* part = thr->tctx->trace.parts.Back();
966 Trace* trace = &thr->tctx->trace;
968 part->trace = trace;
975 Lock lock(&trace->mtx);
976 if (trace->parts.Empty())
977 trace->local_head = part;
978 if (trace->parts.Size() >= local_parts) {
979 recycle = trace->local_head;
980 trace->local_head = trace->parts.Next(recycle);
982 trace->parts.PushBack(part);
987 // and mutex set in the beginning of the trace.
1011 // filled the trace part exactly up to the TracePart::kAlignment gap
1036 trace->parts.Front(), trace->parts.Back(),