From 5e4d07e06e88129a3b57556d3fbb7f626e2d468c Mon Sep 17 00:00:00 2001 From: mcfans Date: Fri, 9 Jun 2017 13:04:45 +0800 Subject: [PATCH 1/2] make the ping process Thread-safe --- ShadowsocksX-NG/PingClient.swift | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/ShadowsocksX-NG/PingClient.swift b/ShadowsocksX-NG/PingClient.swift index b17c1a5..e421ed6 100644 --- a/ShadowsocksX-NG/PingClient.swift +++ b/ShadowsocksX-NG/PingClient.swift @@ -144,23 +144,25 @@ class PingServers:NSObject{ if let latency = $0{ self.SerMgr.profiles[k].latency = String(latency) - synchronized(lock: result as AnyObject){ - result.append(k,latency) - } - DispatchQueue.main.async { - // do the UI update HERE - (NSApplication.shared().delegate as! AppDelegate).updateServersMenu() - (NSApplication.shared().delegate as! AppDelegate).updateRunningModeMenu() - } } - - - }) } // after two seconds ,time out delay(3){ DispatchQueue.main.async { + + for k in 0.. Date: Fri, 9 Jun 2017 13:06:00 +0800 Subject: [PATCH 2/2] remove unused func --- ShadowsocksX-NG/PingClient.swift | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/ShadowsocksX-NG/PingClient.swift b/ShadowsocksX-NG/PingClient.swift index e421ed6..c8fe76c 100644 --- a/ShadowsocksX-NG/PingClient.swift +++ b/ShadowsocksX-NG/PingClient.swift @@ -220,11 +220,7 @@ typealias Task = (_ cancel : Bool) -> Void } -func synchronized(lock: AnyObject, closure: () -> ()) { - objc_sync_enter(lock) - closure() - objc_sync_exit(lock) -} + func cancel(_ task: Task?) { task?(true) }