Skip to content

Commit ef2f594

Browse files
authored
Make network status update thread safe (#2034)
## Goal Concurrent access of the listeners, da-doi!
1 parent 13f4afd commit ef2f594

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

embrace-android-core/src/main/kotlin/io/embrace/android/embracesdk/internal/capture/connectivity/EmbraceNetworkConnectivityService.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import io.embrace.android.embracesdk.internal.logging.InternalErrorType
1111
import io.embrace.android.embracesdk.internal.worker.BackgroundWorker
1212
import java.net.Inet4Address
1313
import java.net.NetworkInterface
14+
import java.util.concurrent.CopyOnWriteArrayList
1415

1516
@Suppress("DEPRECATION") // uses deprecated APIs for backwards compat
1617
internal class EmbraceNetworkConnectivityService(
@@ -22,7 +23,7 @@ internal class EmbraceNetworkConnectivityService(
2223

2324
private val intentFilter = IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)
2425
private var lastNetworkStatus: NetworkStatus = NetworkStatus.UNKNOWN
25-
private val networkConnectivityListeners = mutableListOf<NetworkConnectivityListener>()
26+
private val networkConnectivityListeners = CopyOnWriteArrayList<NetworkConnectivityListener>()
2627
override val ipAddress: String? by lazy { calculateIpAddress() }
2728

2829
override fun onReceive(context: Context, intent: Intent) {

0 commit comments

Comments
 (0)