-
Notifications
You must be signed in to change notification settings - Fork 749
Open
Labels
bugSomething isn't workingSomething isn't working
Description
haltTree
resets the tree status to IDLE
which then in the tickRoot
only breaks out of the inner loop, which is then restarted by the outer loop
NodeStatus Tree::tickRoot(TickOption opt, std::chrono::milliseconds sleep_time)
{
...
// Always run if IDLE
while (status == NodeStatus::IDLE ||
(opt == TickOption::WHILE_RUNNING && status == NodeStatus::RUNNING))
{
...
// Inner loop. The previous tick might have triggered the wake-up
// in this case, unless TickOption::EXACTLY_ONCE, we tick again
while( opt != TickOption::EXACTLY_ONCE &&
status == NodeStatus::RUNNING &&
wake_up_->waitFor(std::chrono::milliseconds(0)) )
{
status = rootNode()->executeTick();
// Due to halt tree status is now IDLE, normal exiting operation would be SUCCESS or FAIL
}
...
}
return status;
}
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working