@@ -552,24 +552,30 @@ extension _ProtocolClient : URLProtocolClient {
552552 session. delegateQueue. addOperation {
553553 delegate. urlSession ( session, task: task, didCompleteWithError: nil )
554554 task. state = . completed
555- task . workQueue. async {
555+ session . workQueue. async {
556556 session. taskRegistry. remove ( task)
557557 }
558558 }
559559 case . noDelegate:
560560 task. state = . completed
561- session. taskRegistry. remove ( task)
561+ session. workQueue. async {
562+ session. taskRegistry. remove ( task)
563+ }
562564 case . dataCompletionHandler( let completion) :
563565 session. delegateQueue. addOperation {
564566 completion ( `protocol`. properties [ URLProtocol . _PropertyKey. responseData] as? Data ?? Data ( ) , task. response, nil )
565567 task. state = . completed
566- session. taskRegistry. remove ( task)
568+ session. workQueue. async {
569+ session. taskRegistry. remove ( task)
570+ }
567571 }
568572 case . downloadCompletionHandler( let completion) :
569573 session. delegateQueue. addOperation {
570574 completion ( `protocol`. properties [ URLProtocol . _PropertyKey. temporaryFileURL] as? URL , task. response, nil )
571575 task. state = . completed
572- session. taskRegistry. remove ( task)
576+ session. workQueue. async {
577+ session. taskRegistry. remove ( task)
578+ }
573579 }
574580 }
575581 task. _protocol = nil
@@ -610,26 +616,30 @@ extension _ProtocolClient : URLProtocolClient {
610616 session. delegateQueue. addOperation {
611617 delegate. urlSession ( session, task: task, didCompleteWithError: error as Error )
612618 task. state = . completed
613- task . workQueue. async {
619+ session . workQueue. async {
614620 session. taskRegistry. remove ( task)
615621 }
616622 }
617623 case . noDelegate:
618624 task. state = . completed
619- session. taskRegistry. remove ( task)
625+ session. workQueue. async {
626+ session. taskRegistry. remove ( task)
627+ }
620628 case . dataCompletionHandler( let completion) :
621629 session. delegateQueue. addOperation {
622630 completion ( nil , nil , error)
623631 task. state = . completed
624- task . workQueue. async {
632+ session . workQueue. async {
625633 session. taskRegistry. remove ( task)
626634 }
627635 }
628636 case . downloadCompletionHandler( let completion) :
629637 session. delegateQueue. addOperation {
630638 completion ( nil , nil , error)
631639 task. state = . completed
632- session. taskRegistry. remove ( task)
640+ session. workQueue. async {
641+ session. taskRegistry. remove ( task)
642+ }
633643 }
634644 }
635645 task. _protocol = nil
0 commit comments