Fix a missing synchronized

This commit is contained in:
Mygod
2019-07-16 09:40:05 +08:00
parent 2adf3221b8
commit 983e80596b

View File

@@ -23,6 +23,7 @@ object DefaultNetworkMonitor : UpstreamMonitor() {
override fun onAvailable(network: Network) {
val properties = app.connectivity.getLinkProperties(network)
val ifname = properties?.interfaceName ?: return
synchronized(this@DefaultNetworkMonitor) {
when (currentNetwork) {
null -> { }
network -> {
@@ -36,8 +37,10 @@ object DefaultNetworkMonitor : UpstreamMonitor() {
currentLinkProperties = properties
callbacks.forEach { it.onAvailable(ifname, properties.dnsServers) }
}
}
override fun onLinkPropertiesChanged(network: Network, properties: LinkProperties) {
synchronized(this@DefaultNetworkMonitor) {
if (currentNetwork == null) {
onAvailable(network)
return
@@ -63,8 +66,9 @@ object DefaultNetworkMonitor : UpstreamMonitor() {
}
}
}
}
override fun onLost(network: Network) {
override fun onLost(network: Network) = synchronized(this@DefaultNetworkMonitor) {
if (currentNetwork != network) return
callbacks.forEach { it.onLost() }
currentNetwork = null