@@ -541,24 +541,30 @@ extension _ProtocolClient : URLProtocolClient {
541
541
session. delegateQueue. addOperation {
542
542
delegate. urlSession ( session, task: task, didCompleteWithError: nil )
543
543
task. state = . completed
544
- task . workQueue. async {
544
+ session . workQueue. async {
545
545
session. taskRegistry. remove ( task)
546
546
}
547
547
}
548
548
case . noDelegate:
549
549
task. state = . completed
550
- session. taskRegistry. remove ( task)
550
+ session. workQueue. async {
551
+ session. taskRegistry. remove ( task)
552
+ }
551
553
case . dataCompletionHandler( let completion) :
552
554
session. delegateQueue. addOperation {
553
555
completion ( `protocol`. properties [ URLProtocol . _PropertyKey. responseData] as? Data ?? Data ( ) , task. response, nil )
554
556
task. state = . completed
555
- session. taskRegistry. remove ( task)
557
+ session. workQueue. async {
558
+ session. taskRegistry. remove ( task)
559
+ }
556
560
}
557
561
case . downloadCompletionHandler( let completion) :
558
562
session. delegateQueue. addOperation {
559
563
completion ( `protocol`. properties [ URLProtocol . _PropertyKey. temporaryFileURL] as? URL , task. response, nil )
560
564
task. state = . completed
561
- session. taskRegistry. remove ( task)
565
+ session. workQueue. async {
566
+ session. taskRegistry. remove ( task)
567
+ }
562
568
}
563
569
}
564
570
task. _protocol = nil
@@ -599,26 +605,30 @@ extension _ProtocolClient : URLProtocolClient {
599
605
session. delegateQueue. addOperation {
600
606
delegate. urlSession ( session, task: task, didCompleteWithError: error as Error )
601
607
task. state = . completed
602
- task . workQueue. async {
608
+ session . workQueue. async {
603
609
session. taskRegistry. remove ( task)
604
610
}
605
611
}
606
612
case . noDelegate:
607
613
task. state = . completed
608
- session. taskRegistry. remove ( task)
614
+ session. workQueue. async {
615
+ session. taskRegistry. remove ( task)
616
+ }
609
617
case . dataCompletionHandler( let completion) :
610
618
session. delegateQueue. addOperation {
611
619
completion ( nil , nil , error)
612
620
task. state = . completed
613
- task . workQueue. async {
621
+ session . workQueue. async {
614
622
session. taskRegistry. remove ( task)
615
623
}
616
624
}
617
625
case . downloadCompletionHandler( let completion) :
618
626
session. delegateQueue. addOperation {
619
627
completion ( nil , nil , error)
620
628
task. state = . completed
621
- session. taskRegistry. remove ( task)
629
+ session. workQueue. async {
630
+ session. taskRegistry. remove ( task)
631
+ }
622
632
}
623
633
}
624
634
task. _protocol = nil
0 commit comments