diff --git a/libraries/pushstore/impl/src/main/kotlin/io/element/android/libraries/pushstore/impl/DefaultUserPushStoreFactory.kt b/libraries/pushstore/impl/src/main/kotlin/io/element/android/libraries/pushstore/impl/DefaultUserPushStoreFactory.kt index 16100fd858..8c85dca80c 100644 --- a/libraries/pushstore/impl/src/main/kotlin/io/element/android/libraries/pushstore/impl/DefaultUserPushStoreFactory.kt +++ b/libraries/pushstore/impl/src/main/kotlin/io/element/android/libraries/pushstore/impl/DefaultUserPushStoreFactory.kt @@ -26,6 +26,7 @@ import io.element.android.libraries.pushstore.api.UserPushStore import io.element.android.libraries.pushstore.api.UserPushStoreFactory import io.element.android.libraries.sessionstorage.api.observer.SessionListener import io.element.android.libraries.sessionstorage.api.observer.SessionObserver +import java.util.concurrent.ConcurrentHashMap import javax.inject.Inject @SingleIn(AppScope::class) @@ -39,15 +40,13 @@ class DefaultUserPushStoreFactory @Inject constructor( } // We can have only one class accessing a single data store, so keep a cache of them. - private val cache = mutableMapOf() + private val cache = ConcurrentHashMap() override fun create(userId: SessionId): UserPushStore { - return synchronized(cache) { - cache.getOrPut(userId) { - UserPushStoreDataStore( - context = context, - userId = userId - ) - } + return cache.getOrPut(userId) { + UserPushStoreDataStore( + context = context, + userId = userId + ) } }