summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-05-06 19:34:01 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-05-14 20:39:01 +0000
commit600b9e7bb7f52acfc326a79c1ea999901e00cd15 (patch)
tree3704fd951726f7b97a700a4029b868d7179ee031 /android/src
parentacddadb86a9fba6d0abe0a180046370f633cb922 (diff)
downloadmullvadvpn-600b9e7bb7f52acfc326a79c1ea999901e00cd15.tar.xz
mullvadvpn-600b9e7bb7f52acfc326a79c1ea999901e00cd15.zip
Store listeners in a map with IDs
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt10
1 files changed, 5 insertions, 5 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt
index 906a44bcc7..e79482986c 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt
@@ -25,7 +25,7 @@ class ServiceEndpoint(
val connectivityListener: ConnectivityListener,
context: Context
) {
- private val listeners = mutableSetOf<Messenger>()
+ private val listeners = mutableMapOf<Int, Messenger>()
private val registrationQueue: SendChannel<Messenger> = startRegistrator()
internal val dispatcher = DispatchingHandler(looper) { message ->
@@ -76,13 +76,13 @@ class ServiceEndpoint(
internal fun sendEvent(event: Event) {
synchronized(this) {
- val deadListeners = mutableSetOf<Messenger>()
+ val deadListeners = mutableSetOf<Int>()
- for (listener in listeners) {
+ for ((id, listener) in listeners) {
try {
listener.send(event.message)
} catch (_: DeadObjectException) {
- deadListeners.add(listener)
+ deadListeners.add(id)
}
}
@@ -111,7 +111,7 @@ class ServiceEndpoint(
synchronized(this) {
val listenerId = newListenerId()
- listeners.add(listener)
+ listeners.put(listenerId, listener)
val initialEvents = mutableListOf(
Event.TunnelStateChange(connectionProxy.state),