From a560555a018caed8cf3fa0f97a6320263491e4af Mon Sep 17 00:00:00 2001 From: andrekir Date: Fri, 7 Apr 2023 11:28:17 -0300 Subject: [PATCH] fix: add synchronized() to service numOnlineNodes to avoid `ConcurrentModificationException` from nodeDBbyNodeNum changes --- app/src/main/java/com/geeksville/mesh/service/MeshService.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt index bc9409d16..c61862617 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt @@ -427,7 +427,8 @@ class MeshService : Service(), Logging { /** * How many nodes are currently online (including our local node) */ - private val numOnlineNodes get() = nodeDBbyNodeNum.values.count { it.isOnline } + private val numOnlineNodes + get() = synchronized(nodeDBbyNodeNum) { nodeDBbyNodeNum.values.count { it.isOnline } } private fun toNodeNum(id: String): Int = when (id) { DataPacket.ID_BROADCAST -> DataPacket.NODENUM_BROADCAST