void TracedTaskCommon::Init() { TraceInfo* info = GetOrCreateTraceInfo(); NS_ENSURE_TRUE_VOID(info); mTaskId = GenNewUniqueTaskId(); mSourceEventId = info->mCurTraceSourceId; mSourceEventType = info->mCurTraceSourceType; LogDispatch(mTaskId, info->mCurTaskId, mSourceEventId, mSourceEventType); }
void TracedTaskCommon::Init() { TraceInfo* info = GetOrCreateTraceInfo(); ENSURE_TRUE_VOID(info); mTaskId = GenNewUniqueTaskId(); mSourceEventId = info->mCurTraceSourceId; mSourceEventType = info->mCurTraceSourceType; mParentTaskId = info->mCurTaskId; mIsTraceInfoInit = true; }
void TracedTaskCommon::Init() { // Keep the following line before GetOrCreateTraceInfo() to avoid a // deadlock. uint64_t taskid = GenNewUniqueTaskId(); TraceInfoHolder info = GetOrCreateTraceInfo(); ENSURE_TRUE_VOID(info); mTaskId = taskid; mSourceEventId = info->mCurTraceSourceId; mSourceEventType = info->mCurTraceSourceType; mParentTaskId = info->mCurTaskId; mIsTraceInfoInit = true; }
static void CreateSourceEvent(SourceEventType aType) { // Save the currently traced source event info. SaveCurTraceInfo(); // Create a new unique task id. uint64_t newId = GenNewUniqueTaskId(); TraceInfo* info = GetOrCreateTraceInfo(); ENSURE_TRUE_VOID(info); info->mCurTraceSourceId = newId; info->mCurTraceSourceType = aType; info->mCurTaskId = newId; uintptr_t* namePtr; #define SOURCE_EVENT_NAME(type) \ case SourceEventType::type: \ { \ static int CreateSourceEvent##type; \ namePtr = (uintptr_t*)&CreateSourceEvent##type; \ break; \ } switch (aType) { #include "SourceEventTypeMap.h" default: MOZ_CRASH("Unknown SourceEvent."); } #undef CREATE_SOURCE_EVENT_NAME // Log a fake dispatch and start for this source event. LogDispatch(newId, newId, newId, aType); LogVirtualTablePtr(newId, newId, namePtr); LogBegin(newId, newId); }