diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/internal/InternalEventListeners.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/internal/InternalEventListeners.kt index 28fd7cd4d..6d14429d5 100644 --- a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/internal/InternalEventListeners.kt +++ b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/internal/InternalEventListeners.kt @@ -129,16 +129,15 @@ internal object EventListenerManger { private val registriesMutex = Mutex() @Suppress("UNCHECKED_CAST") - internal suspend fun get(clazz: KClass): EventListeners = registriesMutex.withLock { - if (registries.containsKey(clazz)) { - return registries[clazz] as EventListeners - } else { + internal suspend fun get(clazz: KClass): EventListeners = + if (registries.containsKey(clazz)) registries[clazz] as EventListeners + else registriesMutex.withLock { EventListeners().let { registries[clazz] = it return it } } - } + } internal suspend fun E.broadcastInternal(): E {