in Sources/apm-agent-ios/Instrumentation/ViewController/TraceLogger.swift [68:99]
func stopTrace(associatedObject: AnyObject, preferredName: String?) {
spanLock.lock()
defer {
spanLock.unlock()
}
if let activeSpan = getActiveSpan() {
if let preferredName = preferredName, activeSpan.name != preferredName {
activeSpan.name = preferredName
}
if !VCNameOverrideStore.shared().name.isEmpty {
activeSpan.name = VCNameOverrideStore.shared().name
VCNameOverrideStore.shared().name = ""
}
OpenTelemetry.instance.contextProvider.removeContextForSpan(activeSpan)
}
loadCount -= 1
if let associatedSpan = getActiveSpan(), loadCount == 0 {
os_log("Stopping trace: %@ - %@ - %@",
log: logger,
type: .debug,
associatedSpan.name,
associatedSpan.context.traceId.description,
associatedSpan.context.spanId.description)
associatedSpan.status = .ok
associatedSpan.end()
setActiveSpan(nil)
}
}