func stopTrace()

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)
    }
  }