internal unsafe void ProcessEvent(uint eventID, uint osThreadID, DateTime timeStamp, Guid activityId, Guid childActivityId, ReadOnlySpan <byte> payload) { // A simple fix to avoid dependencies brought by this method if event source is disabled via a feature switch. // Should be reconsidered when https://github.com/dotnet/runtime/issues/43657 is done. if (!IsSupported) { return; } // Make sure the eventID is valid. if (eventID >= m_eventData !.Length) { return; } // Decode the payload. object[] decodedPayloadFields = EventPipePayloadDecoder.DecodePayload(ref m_eventData[eventID], payload); WriteToAllListeners( eventId: (int)eventID, osThreadId: &osThreadID, timeStamp: &timeStamp, activityID: &activityId, childActivityID: &childActivityId, args: decodedPayloadFields); }
internal unsafe void ProcessEvent(uint eventID, uint osThreadID, DateTime timeStamp, Guid activityId, Guid childActivityId, ReadOnlySpan <byte> payload) { // A simple fix to avoid dependencies brought by this method if event source is disabled via a feature switch. // Should be reconsidered when https://github.com/dotnet/runtime/issues/43657 is done. if (!IsSupported) { return; } // Make sure the eventID is valid. if (eventID >= m_eventData !.Length) { return; } // Decode the payload. object[] decodedPayloadFields = EventPipePayloadDecoder.DecodePayload(ref m_eventData[eventID], payload); var eventCallbackArgs = new EventWrittenEventArgs(this, (int)eventID, &activityId, &childActivityId) { OSThreadId = (int)osThreadID, TimeStamp = timeStamp, Payload = new ReadOnlyCollection <object?>(decodedPayloadFields) }; DispatchToAllListeners(eventCallbackArgs); }