internal Timing StopEvent(Metric metric)
{
Timing timing;
lock (metricsLock)
{
if (!inFlightTimings.TryGetValue(metric, out timing))
{
LogError_Locked(metric, "Trying to stop event that has not been started");
return new Timing();
}
inFlightTimings.Remove(metric);
timing.Stop(CurrentTime);
if (IsEnabled)
{
List<Timing> list;
if (!Timings.TryGetValue(metric, out list))
{
list = new List<Timing>();
Timings[metric] = list;
}
list.Add(timing);
}
}
return timing;
}