Skip to content

Commit 68b1eea

Browse files
authored
Merge pull request #51 from gojek/fix/data_race_condition_reachability
Fixed Data race condition in Network Reachability
2 parents e2546b2 + 497b73a commit 68b1eea

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

Sources/ClickstreamLib/NetworkManager/Core/RetryMechanism.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,10 @@ final class DefaultRetryMechanism: Retryable {
106106
self.persistence = persistence
107107
self.keepAliveService = keepAliveService
108108

109+
self.observeNetworkConnectivity()
109110
self.establishConnection()
110111
self.observeDeviceStatus()
111112
self.observeAppStateChanges()
112-
self.observeNetworkConnectivity()
113113
self.keepConnectionAlive()
114114
}
115115

@@ -132,7 +132,6 @@ final class DefaultRetryMechanism: Retryable {
132132

133133
private func observeNetworkConnectivity() {
134134
do {
135-
try reachability.startNotifier()
136135
reachability.whenReachable = { [weak self] (_) in
137136
guard let checkedSelf = self else { return }
138137
checkedSelf.establishConnection()
@@ -141,6 +140,7 @@ final class DefaultRetryMechanism: Retryable {
141140
guard let checkedSelf = self else { return }
142141
checkedSelf.terminateConnection()
143142
}
143+
try reachability.startNotifier()
144144
} catch {
145145
print("Unable to start notifier")
146146
}

0 commit comments

Comments
 (0)