You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Using any deployment with at least one task, starting said task by whatever means, said task does not have its stopHook and similar called when the deployment is terminated(using SIGINT, SIGTERM and similar).
The owner of the tasks, ORO_main()/ORO_main_impl(), does not do anything special to the tasks, except run their destructor through std::unique_ptr. ORO_main()/ORO_main_impl() does stop() their associated Activitys.
On the RTT side, the Tasks parent classes TaskContext and TaskCore cannot run the hooks in their destructors, since the child object has technically already been deconstructed and thus the virtual methods are no longer available. The Activitys only call into ExecutionEngine::finalize(), which does nothing. ExecutionEngine is the bit that knows about the task from an Activitys point of view.
The solution for this could be to have the ORO_main()/ORO_main_impl() run the tasks state machines using its Deinitializer, like it already does for the Activitys it creates.
The text was updated successfully, but these errors were encountered:
Using any deployment with at least one task, starting said task by whatever means, said task does not have its
stopHook
and similar called when the deployment is terminated(using SIGINT, SIGTERM and similar).The owner of the tasks,
ORO_main()
/ORO_main_impl()
, does not do anything special to the tasks, except run their destructor throughstd::unique_ptr
.ORO_main()
/ORO_main_impl()
doesstop()
their associatedActivity
s.On the RTT side, the Tasks parent classes
TaskContext
andTaskCore
cannot run the hooks in their destructors, since the child object has technically already been deconstructed and thus the virtual methods are no longer available. TheActivity
s only call intoExecutionEngine::finalize()
, which does nothing.ExecutionEngine
is the bit that knows about the task from anActivity
s point of view.The solution for this could be to have the
ORO_main()
/ORO_main_impl()
run the tasks state machines using itsDeinitializer
, like it already does for theActivity
s it creates.The text was updated successfully, but these errors were encountered: