only allow one inline breakpoint redraw job at a time (fixed RIDER-106989)

(cherry picked from commit 68232d669f59453f05dd9b1cf47f657a0406d220)

NET-MR-13719

GitOrigin-RevId: 53d800df24dfea8f8f49785e270cf54eaccc67c2
This commit is contained in:
Arseny Chernyaev
2024-03-12 18:04:13 +00:00
committed by intellij-monorepo-bot
parent 3e3770bdd7
commit ee8e8a5e9c
@@ -19,6 +19,7 @@ import com.intellij.openapi.util.registry.Registry
import com.intellij.openapi.util.registry.RegistryValue
import com.intellij.openapi.util.registry.RegistryValueListener
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.platform.util.coroutines.namedChildScope
import com.intellij.psi.PsiDocumentManager
import com.intellij.util.DocumentUtil
import com.intellij.util.concurrency.annotations.RequiresReadLock
@@ -32,11 +33,16 @@ import com.intellij.xdebugger.breakpoints.*
import com.intellij.xdebugger.impl.XDebuggerUtilImpl
import com.intellij.xdebugger.impl.XSourcePositionImpl
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.launch
import java.util.concurrent.atomic.AtomicLong
@Service(Service.Level.PROJECT)
internal class InlineBreakpointInlayManager(private val project: Project, private val scope: CoroutineScope) {
internal class InlineBreakpointInlayManager(private val project: Project, parentScope: CoroutineScope) {
@OptIn(ExperimentalCoroutinesApi::class)
private val scope = parentScope.namedChildScope("InlineBreakpoints", Dispatchers.Default.limitedParallelism(1))
private val redrawQueue = MergingUpdateQueue(
"inline breakpoint inlay redraw queue",