Details
-
Improvement
-
Status: Resolved
-
Not specified
-
Resolution: Fixed
-
None
-
None
Description
The subgraph reset method ensures all activities are restored to their initial state, ready for re-execution (in a child graph, loop graph).
It was being called when the child/loop graph started in doExecuteChild, and again in sub-ordinate method (CGraphBase::doExecute) if the graph had previously been started.
That meant on the 1st execution of a CQ, it was unnecessarily called once unconditionally (by doExecuteChild),
and on every subsequent execution, it was called twice, do doExecuteChild, and by doExecute.
Change so that the reset() is a no-op if !started.
doExecute on 1st execution will therefore do nothing, but will proceed to reset on subsequent CQ executions because started will have been set to true