Skip to content

Commit 21ef553

Browse files
committed
Rest of fixes
1 parent 60bfeac commit 21ef553

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

FirebaseRemoteConfig/SwiftNew/ConfigRealtime.swift

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)