@@ -541,24 +541,30 @@ extension _ProtocolClient : URLProtocolClient {
541541 session. delegateQueue. addOperation {
542542 delegate. urlSession ( session, task: task, didCompleteWithError: nil )
543543 task. state = . completed
544- task . workQueue. async {
544+ session . workQueue. async {
545545 session. taskRegistry. remove ( task)
546546 }
547547 }
548548 case . noDelegate:
549549 task. state = . completed
550- session. taskRegistry. remove ( task)
550+ session. workQueue. async {
551+ session. taskRegistry. remove ( task)
552+ }
551553 case . dataCompletionHandler( let completion) :
552554 session. delegateQueue. addOperation {
553555 completion ( `protocol`. properties [ URLProtocol . _PropertyKey. responseData] as? Data ?? Data ( ) , task. response, nil )
554556 task. state = . completed
555- session. taskRegistry. remove ( task)
557+ session. workQueue. async {
558+ session. taskRegistry. remove ( task)
559+ }
556560 }
557561 case . downloadCompletionHandler( let completion) :
558562 session. delegateQueue. addOperation {
559563 completion ( `protocol`. properties [ URLProtocol . _PropertyKey. temporaryFileURL] as? URL , task. response, nil )
560564 task. state = . completed
561- session. taskRegistry. remove ( task)
565+ session. workQueue. async {
566+ session. taskRegistry. remove ( task)
567+ }
562568 }
563569 }
564570 task. _protocol = nil
@@ -599,26 +605,30 @@ extension _ProtocolClient : URLProtocolClient {
599605 session. delegateQueue. addOperation {
600606 delegate. urlSession ( session, task: task, didCompleteWithError: error as Error )
601607 task. state = . completed
602- task . workQueue. async {
608+ session . workQueue. async {
603609 session. taskRegistry. remove ( task)
604610 }
605611 }
606612 case . noDelegate:
607613 task. state = . completed
608- session. taskRegistry. remove ( task)
614+ session. workQueue. async {
615+ session. taskRegistry. remove ( task)
616+ }
609617 case . dataCompletionHandler( let completion) :
610618 session. delegateQueue. addOperation {
611619 completion ( nil , nil , error)
612620 task. state = . completed
613- task . workQueue. async {
621+ session . workQueue. async {
614622 session. taskRegistry. remove ( task)
615623 }
616624 }
617625 case . downloadCompletionHandler( let completion) :
618626 session. delegateQueue. addOperation {
619627 completion ( nil , nil , error)
620628 task. state = . completed
621- session. taskRegistry. remove ( task)
629+ session. workQueue. async {
630+ session. taskRegistry. remove ( task)
631+ }
622632 }
623633 }
624634 task. _protocol = nil
0 commit comments