summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-12-12 16:20:32 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-12-12 16:20:32 +0000
commitc18edfbdb8a31befad1d7e6b0085fc2d435b8540 (patch)
tree6ab085f634462e573de6227279923fd66bd58e49 /searchcore
parentc50cff33d0810ba4d99c8215b09a83738bb30dfb (diff)
Remove reset as interface for the executors. Require users to consider lifetime.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/tests/proton/common/timer/timer_test.cpp10
-rw-r--r--searchcore/src/vespa/searchcore/proton/common/scheduled_forward_executor.cpp9
-rw-r--r--searchcore/src/vespa/searchcore/proton/common/scheduled_forward_executor.h2
-rw-r--r--searchcore/src/vespa/searchcore/proton/common/scheduledexecutor.cpp15
-rw-r--r--searchcore/src/vespa/searchcore/proton/common/scheduledexecutor.h5
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/proton.cpp2
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();