@@ -702,24 +702,30 @@ extension _ProtocolClient: URLProtocolClient {
702702 session. delegateQueue. addOperation {
703703 delegate. urlSession ( session, task: task, didCompleteWithError: nil )
704704 task. state = . completed
705- task . workQueue. async {
705+ session . workQueue. async {
706706 session. taskRegistry. remove ( task)
707707 }
708708 }
709709 case . noDelegate:
710710 task. state = . completed
711- session. taskRegistry. remove ( task)
711+ session. workQueue. async {
712+ session. taskRegistry. remove ( task)
713+ }
712714 case . dataCompletionHandler( let completion) :
713715 session. delegateQueue. addOperation {
714716 completion ( `protocol`. properties [ URLProtocol . _PropertyKey. responseData] as? Data ?? Data ( ) , task. response, nil )
715717 task. state = . completed
716- session. taskRegistry. remove ( task)
718+ session. workQueue. async {
719+ session. taskRegistry. remove ( task)
720+ }
717721 }
718722 case . downloadCompletionHandler( let completion) :
719723 session. delegateQueue. addOperation {
720724 completion ( `protocol`. properties [ URLProtocol . _PropertyKey. temporaryFileURL] as? URL , task. response, nil )
721725 task. state = . completed
722- session. taskRegistry. remove ( task)
726+ session. workQueue. async {
727+ session. taskRegistry. remove ( task)
728+ }
723729 }
724730 }
725731 task. _protocol = nil
@@ -786,26 +792,30 @@ extension _ProtocolClient: URLProtocolClient {
786792 session. delegateQueue. addOperation {
787793 delegate. urlSession ( session, task: task, didCompleteWithError: error as Error )
788794 task. state = . completed
789- task . workQueue. async {
795+ session . workQueue. async {
790796 session. taskRegistry. remove ( task)
791797 }
792798 }
793799 case . noDelegate:
794800 task. state = . completed
795- session. taskRegistry. remove ( task)
801+ session. workQueue. async {
802+ session. taskRegistry. remove ( task)
803+ }
796804 case . dataCompletionHandler( let completion) :
797805 session. delegateQueue. addOperation {
798806 completion ( nil , nil , error)
799807 task. state = . completed
800- task . workQueue. async {
808+ session . workQueue. async {
801809 session. taskRegistry. remove ( task)
802810 }
803811 }
804812 case . downloadCompletionHandler( let completion) :
805813 session. delegateQueue. addOperation {
806814 completion ( nil , nil , error)
807815 task. state = . completed
808- session. taskRegistry. remove ( task)
816+ session. workQueue. async {
817+ session. taskRegistry. remove ( task)
818+ }
809819 }
810820 }
811821 task. _protocol = nil
0 commit comments