From 576ea1ff88f70b72ee56f40606998ba80032c2d7 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Mon, 29 Nov 2021 14:24:52 +0000 Subject: Hide sync implementation. --- searchcore/src/vespa/searchcore/proton/server/proton.cpp | 6 +----- .../searchcore/proton/server/shared_threading_service.cpp | 11 +++++++++++ .../vespa/searchcore/proton/server/shared_threading_service.h | 4 ++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.cpp b/searchcore/src/vespa/searchcore/proton/server/proton.cpp index 89940fbf367..7a8c03624a6 100644 --- a/searchcore/src/vespa/searchcore/proton/server/proton.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/proton.cpp @@ -447,11 +447,7 @@ Proton::~Proton() _flushEngine->close(); } if (_shared_service) { - _shared_service->warmup_raw().sync(); - _shared_service->shared_raw()->sync(); - if (_shared_service->field_writer()) { - _shared_service->field_writer()->sync_all(); - } + _shared_service->sync_all_executors(); } if ( ! _documentDBMap.empty()) { diff --git a/searchcore/src/vespa/searchcore/proton/server/shared_threading_service.cpp b/searchcore/src/vespa/searchcore/proton/server/shared_threading_service.cpp index f9333aa18a5..c4fc79c43fd 100644 --- a/searchcore/src/vespa/searchcore/proton/server/shared_threading_service.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/shared_threading_service.cpp @@ -31,4 +31,15 @@ SharedThreadingService::SharedThreadingService(const SharedThreadingServiceConfi } } +SharedThreadingService::~SharedThreadingService() = default; + +void +SharedThreadingService::sync_all_executors() { + _warmup.sync(); + _shared->sync(); + if (_field_writer) { + _field_writer->sync_all(); + } +} + } diff --git a/searchcore/src/vespa/searchcore/proton/server/shared_threading_service.h b/searchcore/src/vespa/searchcore/proton/server/shared_threading_service.h index 12686e4a3c5..b4d3890e3e0 100644 --- a/searchcore/src/vespa/searchcore/proton/server/shared_threading_service.h +++ b/searchcore/src/vespa/searchcore/proton/server/shared_threading_service.h @@ -20,9 +20,9 @@ private: public: SharedThreadingService(const SharedThreadingServiceConfig& cfg); + ~SharedThreadingService(); - vespalib::SyncableThreadExecutor& warmup_raw() { return _warmup; } - std::shared_ptr shared_raw() { return _shared; } + void sync_all_executors(); vespalib::ThreadExecutor& warmup() override { return _warmup; } vespalib::ThreadExecutor& shared() override { return *_shared; } -- cgit v1.2.3 From fdff53baff4a9f4623e0c7239e5bb90b90659e58 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Mon, 29 Nov 2021 15:27:12 +0000 Subject: Keep shared_raw as it is needed for compile cache. But only provide shared_ptr to avoid exposing sync. --- searchcore/src/vespa/searchcore/proton/server/shared_threading_service.h | 1 + 1 file changed, 1 insertion(+) diff --git a/searchcore/src/vespa/searchcore/proton/server/shared_threading_service.h b/searchcore/src/vespa/searchcore/proton/server/shared_threading_service.h index b4d3890e3e0..6006d484c97 100644 --- a/searchcore/src/vespa/searchcore/proton/server/shared_threading_service.h +++ b/searchcore/src/vespa/searchcore/proton/server/shared_threading_service.h @@ -22,6 +22,7 @@ public: SharedThreadingService(const SharedThreadingServiceConfig& cfg); ~SharedThreadingService(); + std::shared_ptr shared_raw() { return _shared; } void sync_all_executors(); vespalib::ThreadExecutor& warmup() override { return _warmup; } -- cgit v1.2.3 From 17389acc8d219fa6aa007ead10f9a1d92134772c Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Mon, 29 Nov 2021 16:18:35 +0000 Subject: Just use the basic interface. --- searchcore/src/vespa/searchcore/proton/server/proton.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.cpp b/searchcore/src/vespa/searchcore/proton/server/proton.cpp index 7a8c03624a6..30a23aaa3d5 100644 --- a/searchcore/src/vespa/searchcore/proton/server/proton.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/proton.cpp @@ -942,7 +942,7 @@ Proton::get_child(vespalib::stringref name) const return std::make_unique(_diskMemUsageSampler->writeFilter(), _persistenceEngine->get_resource_usage_tracker()); } else if (name == THREAD_POOLS) { - return std::make_unique((_shared_service) ? _shared_service->shared_raw().get() : nullptr, + return std::make_unique((_shared_service) ? &_shared_service->shared() : nullptr, (_matchEngine) ? &_matchEngine->get_executor() : nullptr, (_summaryEngine) ? &_summaryEngine->get_executor() : nullptr, (_flushEngine) ? &_flushEngine->get_executor() : nullptr, -- cgit v1.2.3