]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
Revert "TunnelsManager: initialize observer on correct thread"
authorRoopesh Chander <roop@roopc.net>
Sat, 3 Nov 2018 13:15:26 +0000 (18:45 +0530)
committerRoopesh Chander <roop@roopc.net>
Sat, 3 Nov 2018 13:15:26 +0000 (18:45 +0530)
Rather, we'll make sure we always call startObservingTunnelStatus from
the main thread.

This reverts commit d16a6a167c8217e81dd9111d1ad9e4ec6429ef3b.

Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/VPN/TunnelsManager.swift

index f38ca88c4a973ce920ec6c6a7b25699cffba177a..2aa415a774cd78926b99aadfd96a7eb2609597a3 100644 (file)
@@ -399,14 +399,13 @@ class TunnelContainer: NSObject {
     }
 
     private func startObservingTunnelStatus() {
-        DispatchQueue.main.async { [weak self] in
-        guard let s = self else { return }
-        if (s.statusObservationToken != nil) { return }
-        let connection = s.tunnelProvider.connection
-        s.statusObservationToken = NotificationCenter.default.addObserver(
+        if (statusObservationToken != nil) { return }
+        let connection = tunnelProvider.connection
+        statusObservationToken = NotificationCenter.default.addObserver(
             forName: .NEVPNStatusDidChange,
             object: connection,
-            queue: nil) { (_) in
+            queue: nil) { [weak self] (_) in
+                guard let s = self else { return }
                 if ((s.status == .restarting) && (connection.status == .disconnected || connection.status == .disconnecting)) {
                     // Don't change s.status when disconnecting for a restart
                     if (connection.status == .disconnected) {
@@ -422,7 +421,6 @@ class TunnelContainer: NSObject {
                 if (s.status == .inactive) {
                     s.stopObservingTunnelStatus()
                 }
-            }
         }
     }