From b400eddcc4400226c148d2ebd024db5683e2df16 Mon Sep 17 00:00:00 2001 From: Fabian Reister <fabian.reister@kit.edu> Date: Sat, 19 Nov 2022 19:35:51 +0100 Subject: [PATCH] scheduler: fix for handling update of active target (priority was not updated) --- .../components/gaze_scheduler/Scheduler.cpp | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/source/armarx/view_selection/components/gaze_scheduler/Scheduler.cpp b/source/armarx/view_selection/components/gaze_scheduler/Scheduler.cpp index 0ea8d9e..c962db7 100644 --- a/source/armarx/view_selection/components/gaze_scheduler/Scheduler.cpp +++ b/source/armarx/view_selection/components/gaze_scheduler/Scheduler.cpp @@ -301,19 +301,8 @@ namespace armarx::view_selection::gaze_scheduler { std::scoped_lock<std::mutex> targetLock(targetMutex); - const auto currentTarget = currentTargetBuffer.getUpToDateReadBuffer(); - // replace the target if it is currently active - if (currentTarget.has_value()) - { - if (currentTarget->name == target.name) - { - ARMARX_VERBOSE << "Updating active target: " << target.name; - submitControlTarget(target); - - return; - } - } - // remove target if found in queue + // remove target if found in queue + // (otherwise, two targets with the same name but different priorities will be in the queue) for (auto it = requestedTargets.cbegin(); it != requestedTargets.cend(); it++) { if (it->name == target.name) @@ -326,7 +315,6 @@ namespace armarx::view_selection::gaze_scheduler // multiset automatically ensures order requestedTargets.emplace(target); } - scheduleNextTarget(); } void @@ -343,6 +331,13 @@ namespace armarx::view_selection::gaze_scheduler // this will be only used in one of the if-else cases so that they do not // influence each other auto nextTarget = requestedTargets.cbegin(); + ARMARX_VERBOSE << "Next target is " << nextTarget->name; + + ARMARX_DEBUG << "Targets in queue"; + for(const auto& target: requestedTargets) + { + ARMARX_DEBUG << target; + } const auto currentTarget = currentTargetBuffer.getUpToDateReadBuffer(); @@ -441,6 +436,9 @@ namespace armarx::view_selection::gaze_scheduler } } } + + scheduleNextTarget(); + } else { -- GitLab