* Marks the target as terminated, called when the target lists change.
(
node: TreeNode,
terminateArgs: Dap.TerminatedEventParams = {},
)
| 508 | * Marks the target as terminated, called when the target lists change. |
| 509 | */ |
| 510 | private async _markTargetAsTerminated( |
| 511 | node: TreeNode, |
| 512 | terminateArgs: Dap.TerminatedEventParams = {}, |
| 513 | ) { |
| 514 | if (node.state >= TargetState.Terminating) { |
| 515 | await node.waitUntil(TargetState.Terminated); |
| 516 | return {}; |
| 517 | } |
| 518 | |
| 519 | node.state = TargetState.Terminating; |
| 520 | if (isTargetTreeNode(node)) { |
| 521 | const threadData = await node.threadData.promise; |
| 522 | await threadData.thread.dispose(); |
| 523 | threadData.debugAdapter.dap.terminated(terminateArgs); |
| 524 | threadData.debugAdapter.dispose(); |
| 525 | } else { |
| 526 | this._dap.terminated(terminateArgs); |
| 527 | } |
| 528 | |
| 529 | await node.waitUntilChildrenAre(TargetState.Terminated); |
| 530 | node.state = TargetState.Terminated; |
| 531 | return {}; |
| 532 | } |
| 533 | |
| 534 | /** |
| 535 | * DAP method call to terminate a target. Resolves once the target and |
no test coverage detected