Normally n-ary nodes are deactivated when they have no children any more.
This is done in line 451 of ContinuationHandler.scala:
if (node.children.isEmpty) insertDeactivation(node, null)
However, for operators &, &&, |, ||, / part of the children may be optional:
activated after a break?, and no atomic actions have yet happened therein.
The deactivation test should only take the set of other nodes into account;
when this test is matched the optionally activated children should be removed.
The code should have clear comments that explains what is being done.
Normally n-ary nodes are deactivated when they have no children any more. This is done in line 451 of ContinuationHandler.scala:
However, for operators
&
,&&
,|
,||
,/
part of the children may be optional: activated after abreak?
, and no atomic actions have yet happened therein.The deactivation test should only take the set of other nodes into account; when this test is matched the optionally activated children should be removed.
The code should have clear comments that explains what is being done.