diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-12-12 16:20:32 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-12-12 16:20:32 +0000 |
commit | c18edfbdb8a31befad1d7e6b0085fc2d435b8540 (patch) | |
tree | 6ab085f634462e573de6227279923fd66bd58e49 /searchcore | |
parent | c50cff33d0810ba4d99c8215b09a83738bb30dfb (diff) |
Remove reset as interface for the executors. Require users to consider lifetime.
Diffstat (limited to 'searchcore')
6 files changed, 7 insertions, 36 deletions
diff --git a/searchcore/src/tests/proton/common/timer/timer_test.cpp b/searchcore/src/tests/proton/common/timer/timer_test.cpp index 8dd0c0abf53..0f517a00a5d 100644 --- a/searchcore/src/tests/proton/common/timer/timer_test.cpp +++ b/searchcore/src/tests/proton/common/timer/timer_test.cpp @@ -57,7 +57,6 @@ public: timer = make_scheduled_executor<ScheduledT>(transport, executor); } ~ScheduledExecutorTest() { - timer->reset(); transport.ShutDown(true); } }; @@ -75,15 +74,6 @@ TYPED_TEST(ScheduledExecutorTest, test_scheduling) { EXPECT_TRUE(latch2.await(60s)); } -TYPED_TEST(ScheduledExecutorTest, test_reset) { - vespalib::CountDownLatch latch1(2); - auto handleA = this->timer->scheduleAtFixedRate(std::make_unique<TestTask>(latch1), 2s, 3s); - this->timer->reset(); - EXPECT_TRUE(!latch1.await(3s)); - auto handleB = this->timer->scheduleAtFixedRate(std::make_unique<TestTask>(latch1), 200ms, 300ms); - EXPECT_TRUE(latch1.await(60s)); -} - TYPED_TEST(ScheduledExecutorTest, test_drop_handle) { vespalib::CountDownLatch latch1(2); auto handleA = this->timer->scheduleAtFixedRate(std::make_unique<TestTask>(latch1), 2s, 3s); 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 b69dcbd253e..08712a1094c 100644 --- a/searchcore/src/vespa/searchcore/proton/common/scheduled_forward_executor.cpp +++ b/searchcore/src/vespa/searchcore/proton/common/scheduled_forward_executor.cpp @@ -75,12 +75,9 @@ ScheduledForwardExecutor::ScheduledForwardExecutor(FNET_Transport& transport, { } -ScheduledForwardExecutor::~ScheduledForwardExecutor() = default; - -void -ScheduledForwardExecutor::reset() -{ - _scheduler.reset(); +ScheduledForwardExecutor::~ScheduledForwardExecutor() { + std::lock_guard guard(_lock); + assert(_taskList.empty()); } bool diff --git a/searchcore/src/vespa/searchcore/proton/common/scheduled_forward_executor.h b/searchcore/src/vespa/searchcore/proton/common/scheduled_forward_executor.h index efab1a5e2fd..d65b1cfedc4 100644 --- a/searchcore/src/vespa/searchcore/proton/common/scheduled_forward_executor.h +++ b/searchcore/src/vespa/searchcore/proton/common/scheduled_forward_executor.h @@ -26,8 +26,6 @@ private: public: ScheduledForwardExecutor(FNET_Transport& transport, Executor& executor); ~ScheduledForwardExecutor() override; - void reset(); - [[nodiscard]] Handle scheduleAtFixedRate(std::unique_ptr<Executor::Task> task, duration delay, duration interval) override; }; diff --git a/searchcore/src/vespa/searchcore/proton/common/scheduledexecutor.cpp b/searchcore/src/vespa/searchcore/proton/common/scheduledexecutor.cpp index 6acea2e68a5..3fb08b9ad2b 100644 --- a/searchcore/src/vespa/searchcore/proton/common/scheduledexecutor.cpp +++ b/searchcore/src/vespa/searchcore/proton/common/scheduledexecutor.cpp @@ -25,7 +25,7 @@ public: _interval(interval) { } - ~TimerTask() { + ~TimerTask() override { Kill(); } @@ -55,7 +55,8 @@ ScheduledExecutor::ScheduledExecutor(FNET_Transport & transport) ScheduledExecutor::~ScheduledExecutor() { - reset(); + std::lock_guard guard(_lock); + assert(_taskList.empty()); } @@ -83,14 +84,4 @@ ScheduledExecutor::cancel(uint64_t key) return true; } -void -ScheduledExecutor::reset() -{ - std::lock_guard guard(_lock); - for (auto & task : _taskList) { - task.second->Unschedule(); - } - _taskList.clear(); -} - } diff --git a/searchcore/src/vespa/searchcore/proton/common/scheduledexecutor.h b/searchcore/src/vespa/searchcore/proton/common/scheduledexecutor.h index f4673612a6c..198a944b0f4 100644 --- a/searchcore/src/vespa/searchcore/proton/common/scheduledexecutor.h +++ b/searchcore/src/vespa/searchcore/proton/common/scheduledexecutor.h @@ -41,11 +41,6 @@ public: ~ScheduledExecutor() override; [[nodiscard]] Handle scheduleAtFixedRate(std::unique_ptr<Executor::Task> task, duration delay, duration interval) override; - - /** - * Reset timer, clearing the list of task to execute. - */ - void reset(); }; } diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.cpp b/searchcore/src/vespa/searchcore/proton/server/proton.cpp index 9934a94d7a5..44dfbbfba98 100644 --- a/searchcore/src/vespa/searchcore/proton/server/proton.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/proton.cpp @@ -470,7 +470,7 @@ Proton::~Proton() _diskMemUsageSampler->notifier().removeDiskMemUsageListener(_memoryFlushConfigUpdater.get()); } _sessionPruneHandle.reset(); - _scheduler->reset(); + _scheduler.reset(); _executor.shutdown(); _executor.sync(); _rpcHooks.reset(); |