@@ -507,18 +507,21 @@ public class URLSessionInstrumentation {
507507 }
508508
509509 private func urlSession( _ session: URLSession , task: URLSessionTask , didCompleteWithError error: Error ? ) {
510- let taskId = self . idKeyForTask ( task)
510+ queue. sync {
511+ let taskId = self . idKeyForTask ( task)
511512
512- let requestState = self . requestMap [ taskId]
513+ let requestState = self . requestMap [ taskId]
513514
514- if let error = error {
515- let status = ( task. response as? HTTPURLResponse ) ? . statusCode ?? 0
516- URLSessionLogger . logError ( error, dataOrFile: requestState? . dataProcessed, statusCode: status, instrumentation: self , sessionTaskId: taskId)
517- } else if let response = task. response {
518- URLSessionLogger . logResponse ( response, dataOrFile: requestState? . dataProcessed, instrumentation: self , sessionTaskId: taskId)
519- }
520- if requestState != nil {
521- requestMap [ taskId] = nil
515+ if let error = error {
516+ let status = ( task. response as? HTTPURLResponse ) ? . statusCode ?? 0
517+ URLSessionLogger . logError ( error, dataOrFile: requestState? . dataProcessed, statusCode: status, instrumentation: self , sessionTaskId: taskId)
518+ } else if let response = task. response {
519+ URLSessionLogger . logResponse ( response, dataOrFile: requestState? . dataProcessed, instrumentation: self , sessionTaskId: taskId)
520+ }
521+
522+ if requestState != nil {
523+ self . requestMap [ taskId] = nil
524+ }
522525 }
523526 }
524527
@@ -537,14 +540,16 @@ public class URLSessionInstrumentation {
537540 }
538541
539542 private func urlSessionTaskWillResume( _ session: URLSessionTask ) {
540- let taskId = self . idKeyForTask ( session)
541- if let request = session. currentRequest {
542- var state = requestMap [ taskId]
543- if state == nil {
544- state = NetworkRequestState ( )
545- requestMap [ taskId] = state
543+ queue. sync {
544+ let taskId = self . idKeyForTask ( session)
545+ if let request = session. currentRequest {
546+ var state = requestMap [ taskId]
547+ if state == nil {
548+ state = NetworkRequestState ( )
549+ requestMap [ taskId] = state
550+ }
551+ requestMap [ taskId] ? . setRequest ( request)
546552 }
547- requestMap [ taskId] ? . setRequest ( request)
548553 }
549554 }
550555
0 commit comments