aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-12-12 15:36:44 +0100
committerGitHub <noreply@github.com>2022-12-12 15:36:44 +0100
commit48f5ab0da50b875f247dd530ae4c36ce281de62f (patch)
tree15655b13acf14d8b79c5855a9134b4a07587b892
parent6cba335640ae35e45f87d7566bc339ef6eb2c235 (diff)
parent4a9e5b2671764caddc3c5574d7643be4047e0540 (diff)
Merge pull request #25218 from vespa-engine/balder/clean-up-canceled-task
Keep the original task in a shared_ptr in the wrapping lambda and makā€¦
-rw-r--r--searchcore/src/vespa/searchcore/proton/common/scheduled_forward_executor.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/common/scheduled_forward_executor.cpp b/searchcore/src/vespa/searchcore/proton/common/scheduled_forward_executor.cpp
index 3f94247fa7e..40f8cd19a17 100644
--- a/searchcore/src/vespa/searchcore/proton/common/scheduled_forward_executor.cpp
+++ b/searchcore/src/vespa/searchcore/proton/common/scheduled_forward_executor.cpp
@@ -24,8 +24,9 @@ IScheduledExecutor::Handle
ScheduledForwardExecutor::scheduleAtFixedRate(Executor::Task::UP task,
duration delay, duration interval)
{
- return _scheduler.scheduleAtFixedRate(makeLambdaTask([&, my_task = std::move(task)]() {
- _executor.execute(makeLambdaTask([&]() {
+ std::shared_ptr<Executor::Task> my_task = std::move(task);
+ return _scheduler.scheduleAtFixedRate(makeLambdaTask([&, my_task = std::move(my_task)]() {
+ _executor.execute(makeLambdaTask([&, my_task]() {
my_task->run();
}));
}), delay, interval);