mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[debugger] ensure node is obsolete on backend
GitOrigin-RevId: 57f6cef040bc082c477d72f1f0e2d46ecebf4bd1
This commit is contained in:
committed by
intellij-monorepo-bot
parent
bbe5b4a516
commit
64f0dc35bf
+11
-12
@@ -187,10 +187,11 @@ internal fun computeContainerChildren(
|
||||
}
|
||||
val addNextChildrenCallbackHandler = AddNextChildrenCallbackHandler(this@channelFlow)
|
||||
|
||||
var isObsolete = false
|
||||
val xCompositeBridgeNode = object : XCompositeNode {
|
||||
@Volatile
|
||||
var obsolete = false
|
||||
override fun isObsolete(): Boolean {
|
||||
return isObsolete
|
||||
return obsolete
|
||||
}
|
||||
|
||||
override fun addChildren(children: XValueChildrenList, last: Boolean) {
|
||||
@@ -222,20 +223,18 @@ internal fun computeContainerChildren(
|
||||
}
|
||||
}
|
||||
|
||||
xValueContainer.computeChildren(xCompositeBridgeNode)
|
||||
|
||||
// mark xCompositeBridgeNode as obsolete when the channel collection is canceled
|
||||
launch {
|
||||
try {
|
||||
awaitCancellation()
|
||||
}
|
||||
finally {
|
||||
isObsolete = true
|
||||
for (event in rawEvents) {
|
||||
send(event.convertToRpcEvent(parentCs, session))
|
||||
}
|
||||
}
|
||||
|
||||
for (event in rawEvents) {
|
||||
send(event.convertToRpcEvent(parentCs, session))
|
||||
try {
|
||||
xValueContainer.computeChildren(xCompositeBridgeNode)
|
||||
awaitClose()
|
||||
}
|
||||
finally {
|
||||
xCompositeBridgeNode.obsolete = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user