diff options
author | Håvard Pettersen <havardpe@yahooinc.com> | 2023-02-20 11:39:12 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@yahooinc.com> | 2023-02-20 12:33:29 +0000 |
commit | d9b2cc5dd6aa9210241efeac249be84772377b35 (patch) | |
tree | a78022b7588a4deba71544c79dd6efaa53792f94 /searchlib | |
parent | a5d5a7dd7bab499554691fa59e08b3771b5e32d3 (diff) |
remove document::Runnable
use std::thread directly instead
Diffstat (limited to 'searchlib')
4 files changed, 15 insertions, 13 deletions
diff --git a/searchlib/src/tests/transactionlog/translogclient_test.cpp b/searchlib/src/tests/transactionlog/translogclient_test.cpp index af214c34be8..a1a42b592b2 100644 --- a/searchlib/src/tests/transactionlog/translogclient_test.cpp +++ b/searchlib/src/tests/transactionlog/translogclient_test.cpp @@ -11,6 +11,7 @@ #include <vespa/vespalib/util/destructor_callbacks.h> #include <vespa/fnet/transport.h> #include <vespa/fastos/file.h> +#include <vespa/fastos/thread.h> #include <thread> #include <vespa/log/log.h> diff --git a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp index 98a9568e4e8..c96b0cdcd61 100644 --- a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp +++ b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp @@ -99,7 +99,7 @@ TransLogServer::TransLogServer(FNET_Transport & transport, const vespalib::strin _baseDir(baseDir), _domainConfig(cfg), _executor(maxThreads, CpuUsage::wrap(tls_executor, CpuUsage::Category::WRITE)), - _threadPool(std::make_unique<FastOS_ThreadPool>()), + _thread(), _supervisor(std::make_unique<FRT_Supervisor>(&transport)), _domains(), _reqQ(), @@ -143,25 +143,24 @@ TransLogServer::TransLogServer(FNET_Transport & transport, const vespalib::strin } else { throw std::runtime_error(make_string("Failed creating tls base dir %s r(%d), e(%d). Requires manual intervention.", _baseDir.c_str(), retval, errno)); } - start(*_threadPool); + _thread = std::thread([this](){run();}); } TransLogServer::~TransLogServer() { - _closed = true; - stop(); - join(); + request_stop(); + _thread.join(); _executor.sync(); _executor.shutdown(); _executor.sync(); } -bool -TransLogServer::onStop() +void +TransLogServer::request_stop() { + _closed = true; LOG(info, "Stopping TLS"); _reqQ.push(nullptr); - return true; } void diff --git a/searchlib/src/vespa/searchlib/transactionlog/translogserver.h b/searchlib/src/vespa/searchlib/transactionlog/translogserver.h index f7ea80c9248..2c5fbf51a08 100644 --- a/searchlib/src/vespa/searchlib/transactionlog/translogserver.h +++ b/searchlib/src/vespa/searchlib/transactionlog/translogserver.h @@ -2,7 +2,6 @@ #pragma once #include "domainconfig.h" -#include <vespa/vespalib/util/document_runnable.h> #include <vespa/vespalib/util/threadstackexecutor.h> #include <vespa/document/util/queue.h> #include <vespa/fnet/frt/invokable.h> @@ -18,7 +17,7 @@ namespace search::transactionlog { class TransLogServerExplorer; class Domain; -class TransLogServer : private FRT_Invokable, public document::Runnable, public WriterFactory +class TransLogServer : private FRT_Invokable, public WriterFactory { public: friend class TransLogServerExplorer; @@ -36,8 +35,8 @@ public: TransLogServer & setDomainConfig(const DomainConfig & cfg); private: - bool onStop() override; - void run() override; + void request_stop(); + void run(); void exportRPC(FRT_Supervisor & supervisor); void relayToThreadRPC(FRT_RPCRequest *req); @@ -63,11 +62,13 @@ private: using ReadGuard = std::shared_lock<std::shared_mutex>; using WriteGuard = std::unique_lock<std::shared_mutex>; + bool running() const { return !_closed.load(std::memory_order_relaxed); } + vespalib::string _name; vespalib::string _baseDir; DomainConfig _domainConfig; vespalib::ThreadStackExecutor _executor; - std::unique_ptr<FastOS_ThreadPool> _threadPool; + std::thread _thread; std::unique_ptr<FRT_Supervisor> _supervisor; DomainList _domains; mutable std::shared_mutex _domainMutex;; // Protects _domains diff --git a/searchlib/src/vespa/searchlib/util/runnable.h b/searchlib/src/vespa/searchlib/util/runnable.h index e268b13e09a..4b353209762 100644 --- a/searchlib/src/vespa/searchlib/util/runnable.h +++ b/searchlib/src/vespa/searchlib/util/runnable.h @@ -4,6 +4,7 @@ #include <mutex> #include <condition_variable> +#include <vespa/fastos/thread.h> namespace search { |