diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-12-12 15:36:44 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-12 15:36:44 +0100 |
commit | 48f5ab0da50b875f247dd530ae4c36ce281de62f (patch) | |
tree | 15655b13acf14d8b79c5855a9134b4a07587b892 | |
parent | 6cba335640ae35e45f87d7566bc339ef6eb2c235 (diff) | |
parent | 4a9e5b2671764caddc3c5574d7643be4047e0540 (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.cpp | 5 |
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); |