From 6451d7472b142a426ebde942f04322932274bb0b Mon Sep 17 00:00:00 2001 From: Aditya Sharat Date: Fri, 22 Mar 2024 11:01:01 -0700 Subject: [PATCH] Uses a copy on write set to make debug event subscribers thread safe Summary: Uses a copy on write set to make debug event subscribers thread safe Differential Revision: D55246460 fbshipit-source-id: c1fcf1c645b7c99f9d7f99a1840bae016d02829c --- .../main/java/com/facebook/rendercore/debug/DebugEvents.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/litho-rendercore/src/main/java/com/facebook/rendercore/debug/DebugEvents.kt b/litho-rendercore/src/main/java/com/facebook/rendercore/debug/DebugEvents.kt index 9a42c87678b..cd1d604a637 100644 --- a/litho-rendercore/src/main/java/com/facebook/rendercore/debug/DebugEvents.kt +++ b/litho-rendercore/src/main/java/com/facebook/rendercore/debug/DebugEvents.kt @@ -19,6 +19,7 @@ package com.facebook.rendercore.debug import com.facebook.kotlin.compilerplugins.dataclassgenerate.annotation.DataClassGenerate import com.facebook.rendercore.LogLevel import com.facebook.rendercore.debug.DebugEvent.Companion.All +import java.util.concurrent.CopyOnWriteArraySet import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicInteger import java.util.concurrent.atomic.AtomicReference @@ -182,7 +183,7 @@ object DebugEventDispatcher { minLogLevelRef.set(value) } - private val mutableSubscribers: MutableSet = mutableSetOf() + private val mutableSubscribers: MutableSet = CopyOnWriteArraySet() val subscribers: Set @Synchronized get() = mutableSubscribers @@ -258,8 +259,7 @@ object DebugEventDispatcher { */ @JvmStatic fun generateTraceIdentifier(type: String): Int? = - if (subscribers.isNotEmpty() && - subscribers.any { type in it.events || DebugEvent.All in it.events }) { + if (subscribers.isNotEmpty() && subscribers.any { type in it.events || All in it.events }) { lastTraceIdentifier.getAndIncrement() } else { null