Skip to content
Snippets Groups Projects

Fix leftover stop events leading to immediate return on waitForStop

Merged Christoph Pohl requested to merge fix/immediateReturnWaitForStop into master
1 file
+ 19
0
Compare changes
  • Side-by-side
  • Inline
@@ -45,6 +45,12 @@ namespace armarx::navigation::client
{
ARMARX_TRACE;
ARMARX_CHECK_NOT_NULL(srv.navigator) << "Navigator service must not be null!";
{
// TODO: This still leads to a race condition, if extern a stop event is generated before moveTo but arrives
// after the event is reset
std::scoped_lock const l{stoppedInfo.m};
stoppedInfo.event.reset();
}
srv.navigator->moveTo(waypoints, frame);
}
@@ -58,6 +64,12 @@ namespace armarx::navigation::client
const std::vector<WaypointTarget>& path = builder.path();
validate(path);
{
// TODO: This still leads to a race condition, if extern a stop event is generated before moveTo but arrives
// after the event is reset
std::scoped_lock const l{stoppedInfo.m};
stoppedInfo.event.reset();
}
srv.navigator->moveTo(path, frame);
}
@@ -67,6 +79,13 @@ namespace armarx::navigation::client
{
ARMARX_TRACE;
ARMARX_CHECK_NOT_NULL(srv.navigator) << "Navigator service must not be null!";
{
// TODO: This still leads to a race condition, if extern a stop event is generated before moveTo but arrives
// after the event is reset
std::scoped_lock const l{stoppedInfo.m};
stoppedInfo.event.reset();
}
srv.navigator->moveTowards(direction, frame);
}
Loading