@@ -552,24 +552,30 @@ extension _ProtocolClient : URLProtocolClient {
552
552
session. delegateQueue. addOperation {
553
553
delegate. urlSession ( session, task: task, didCompleteWithError: nil )
554
554
task. state = . completed
555
- task . workQueue. async {
555
+ session . workQueue. async {
556
556
session. taskRegistry. remove ( task)
557
557
}
558
558
}
559
559
case . noDelegate:
560
560
task. state = . completed
561
- session. taskRegistry. remove ( task)
561
+ session. workQueue. async {
562
+ session. taskRegistry. remove ( task)
563
+ }
562
564
case . dataCompletionHandler( let completion) :
563
565
session. delegateQueue. addOperation {
564
566
completion ( `protocol`. properties [ URLProtocol . _PropertyKey. responseData] as? Data ?? Data ( ) , task. response, nil )
565
567
task. state = . completed
566
- session. taskRegistry. remove ( task)
568
+ session. workQueue. async {
569
+ session. taskRegistry. remove ( task)
570
+ }
567
571
}
568
572
case . downloadCompletionHandler( let completion) :
569
573
session. delegateQueue. addOperation {
570
574
completion ( `protocol`. properties [ URLProtocol . _PropertyKey. temporaryFileURL] as? URL , task. response, nil )
571
575
task. state = . completed
572
- session. taskRegistry. remove ( task)
576
+ session. workQueue. async {
577
+ session. taskRegistry. remove ( task)
578
+ }
573
579
}
574
580
}
575
581
task. _protocol = nil
@@ -610,26 +616,30 @@ extension _ProtocolClient : URLProtocolClient {
610
616
session. delegateQueue. addOperation {
611
617
delegate. urlSession ( session, task: task, didCompleteWithError: error as Error )
612
618
task. state = . completed
613
- task . workQueue. async {
619
+ session . workQueue. async {
614
620
session. taskRegistry. remove ( task)
615
621
}
616
622
}
617
623
case . noDelegate:
618
624
task. state = . completed
619
- session. taskRegistry. remove ( task)
625
+ session. workQueue. async {
626
+ session. taskRegistry. remove ( task)
627
+ }
620
628
case . dataCompletionHandler( let completion) :
621
629
session. delegateQueue. addOperation {
622
630
completion ( nil , nil , error)
623
631
task. state = . completed
624
- task . workQueue. async {
632
+ session . workQueue. async {
625
633
session. taskRegistry. remove ( task)
626
634
}
627
635
}
628
636
case . downloadCompletionHandler( let completion) :
629
637
session. delegateQueue. addOperation {
630
638
completion ( nil , nil , error)
631
639
task. state = . completed
632
- session. taskRegistry. remove ( task)
640
+ session. workQueue. async {
641
+ session. taskRegistry. remove ( task)
642
+ }
633
643
}
634
644
}
635
645
task. _protocol = nil
0 commit comments