@@ -455,7 +455,8 @@ class ConfigRealtime: NSObject, URLSessionDataDelegate {
455455 /// Perform fetch and handle developers callbacks.
456456 @objc ( autoFetch: targetVersion: ) public
457457 func autoFetch( attempts: Int , targetVersion: Int ) {
458- realtimeLockQueue. async {
458+ realtimeLockQueue. async { [ weak self] in
459+ guard let self else { return }
459460 guard attempts > 0 else {
460461 let error = NSError ( domain: RemoteConfigUpdateErrorDomain,
461462 code: RemoteConfigUpdateError . notFetched. rawValue,
@@ -612,13 +613,15 @@ class ConfigRealtime: NSObject, URLSessionDataDelegate {
612613
613614 @objc public
614615 func beginRealtimeStream( ) {
615- realtimeLockQueue. async {
616+ realtimeLockQueue. async { [ weak self] in
617+ guard let self else { return }
616618 guard self . settings. realtimeBackoffInterval ( ) <= 0.0 else {
617619 self . retryHTTPConnection ( )
618620 return
619621 }
620622 if self . canMakeConnection ( ) {
621- self . createRequestBody { requestBody in
623+ self . createRequestBody { [ weak self] requestBody in
624+ guard let self else { return }
622625 var request = self . request
623626 request. httpBody = requestBody
624627 self . isRequestInProgress = true
@@ -631,7 +634,8 @@ class ConfigRealtime: NSObject, URLSessionDataDelegate {
631634
632635 @objc public
633636 func pauseRealtimeStream( ) {
634- realtimeLockQueue. async {
637+ realtimeLockQueue. async { [ weak self] in
638+ guard let self else { return }
635639 if let task = self . dataTask {
636640 task. cancel ( )
637641 self . dataTask = nil
@@ -643,7 +647,8 @@ class ConfigRealtime: NSObject, URLSessionDataDelegate {
643647 @objc public func addConfigUpdateListener( _ listener: @Sendable @escaping ( RemoteConfigUpdate ? ,
644648 Error ? ) -> Void )
645649 -> ConfigUpdateListenerRegistration {
646- realtimeLockQueue. async {
650+ realtimeLockQueue. async { [ weak self] in
651+ guard let self else { return }
647652 let temp = self . listeners. mutableCopy ( ) as! NSMutableOrderedSet
648653 temp. add ( listener)
649654 self . listeners = temp
@@ -654,7 +659,8 @@ class ConfigRealtime: NSObject, URLSessionDataDelegate {
654659
655660 @objc public func removeConfigUpdateListener( _ listener: @escaping ( RemoteConfigUpdate ? , Error ? )
656661 -> Void ) {
657- realtimeLockQueue. async {
662+ realtimeLockQueue. async { [ weak self] in
663+ guard let self else { return }
658664 let temp : NSMutableOrderedSet = self . listeners. mutableCopy ( ) as! NSMutableOrderedSet
659665 temp. remove ( listener)
660666 self . listeners = temp
0 commit comments