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
1, if "ctrl+c" pressed, "done_cb" will never be called by SimpleActionClient because rospy was shutdown, action client cannot receive action server's state message. So, it will be blocked by the code:"self._done_cond.wait()".
2, in multi-thread mode, run "SimpleActionState.execute()" in child thread, after "ctrl+c" pressed, call "SimpleActionState.request_preempt()" in main thread is not working because that, rospy was shutdown, call SimpleActionClient.cancel_goal() will be failed, So, it will be blocked by the code:"self._done_cond.wait()" again.
Suggestion:
check rospy's state in SimpleAction.request_preempt() function, if rospy is shutdown, call self._done_cond.notify() to notify SimpleAction.execute() function to return "preempted" state.
The text was updated successfully, but these errors were encountered:
1, if "ctrl+c" pressed, "done_cb" will never be called by SimpleActionClient because rospy was shutdown, action client cannot receive action server's state message. So, it will be blocked by the code:"self._done_cond.wait()".
2, in multi-thread mode, run "SimpleActionState.execute()" in child thread, after "ctrl+c" pressed, call "SimpleActionState.request_preempt()" in main thread is not working because that, rospy was shutdown, call SimpleActionClient.cancel_goal() will be failed, So, it will be blocked by the code:"self._done_cond.wait()" again.
Suggestion:
check rospy's state in SimpleAction.request_preempt() function, if rospy is shutdown, call self._done_cond.notify() to notify SimpleAction.execute() function to return "preempted" state.
The text was updated successfully, but these errors were encountered: