aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@yahooinc.com>2023-02-27 12:38:38 +0000
committerHåvard Pettersen <havardpe@yahooinc.com>2023-02-27 12:49:01 +0000
commit466c5afc1e238ee09ce9d67b77a7118eca55acdc (patch)
tree37650cd4eb25a697a6290f026bc1da5227697978
parent89bcb33930ad6f04e21a8699f7a7544b3cee9a5b (diff)
avoid using fastos thread in searchcore
also remove some left-behind includes
-rw-r--r--config/src/tests/file_acquirer/file_acquirer_test.cpp1
-rw-r--r--config/src/vespa/config/file_acquirer/file_acquirer.cpp1
-rw-r--r--config/src/vespa/config/frt/frtconnectionpool.cpp1
-rw-r--r--config/src/vespa/config/subscription/sourcespec.cpp1
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/externpolicy.cpp1
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.cpp1
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/mirror_with_all.cpp1
-rw-r--r--searchcore/src/apps/proton/proton.cpp10
-rw-r--r--searchcore/src/apps/vespa-transactionlog-inspect/vespa-transactionlog-inspect.cpp1
-rw-r--r--searchcore/src/tests/proton/common/timer/timer_test.cpp1
-rw-r--r--searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp1
-rw-r--r--searchcore/src/tests/proton/proton_config_fetcher/proton_config_fetcher_test.cpp9
-rw-r--r--searchcore/src/vespa/searchcore/proton/flushengine/flushengine.cpp16
-rw-r--r--searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h14
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/prepare_restart_handler.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/proton.cpp7
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/proton.h4
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/proton_config_fetcher.cpp16
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/proton_config_fetcher.h12
-rw-r--r--searchcore/src/vespa/searchcore/proton/test/transport_helper.cpp1
-rw-r--r--storage/src/tests/storageserver/statereportertest.cpp1
21 files changed, 42 insertions, 60 deletions
diff --git a/config/src/tests/file_acquirer/file_acquirer_test.cpp b/config/src/tests/file_acquirer/file_acquirer_test.cpp
index 8e11f964f16..7ea6556c074 100644
--- a/config/src/tests/file_acquirer/file_acquirer_test.cpp
+++ b/config/src/tests/file_acquirer/file_acquirer_test.cpp
@@ -4,7 +4,6 @@
#include <vespa/fnet/frt/supervisor.h>
#include <vespa/fnet/frt/rpcrequest.h>
#include <vespa/fnet/transport.h>
-#include <vespa/fastos/thread.h>
#include <vespa/vespalib/util/stringfmt.h>
using namespace config;
diff --git a/config/src/vespa/config/file_acquirer/file_acquirer.cpp b/config/src/vespa/config/file_acquirer/file_acquirer.cpp
index 048e9544dab..4ee5b4aa4a9 100644
--- a/config/src/vespa/config/file_acquirer/file_acquirer.cpp
+++ b/config/src/vespa/config/file_acquirer/file_acquirer.cpp
@@ -5,7 +5,6 @@
#include <vespa/fnet/frt/target.h>
#include <vespa/fnet/frt/rpcrequest.h>
#include <vespa/fnet/transport.h>
-#include <vespa/fastos/thread.h>
#include <vespa/log/log.h>
LOG_SETUP(".config.file_acquirer");
diff --git a/config/src/vespa/config/frt/frtconnectionpool.cpp b/config/src/vespa/config/frt/frtconnectionpool.cpp
index de00c650628..b73a28483e6 100644
--- a/config/src/vespa/config/frt/frtconnectionpool.cpp
+++ b/config/src/vespa/config/frt/frtconnectionpool.cpp
@@ -5,7 +5,6 @@
#include <vespa/vespalib/util/size_literals.h>
#include <vespa/fnet/frt/supervisor.h>
#include <vespa/fnet/transport.h>
-#include <vespa/fastos/thread.h>
#include <vespa/log/log.h>
LOG_SETUP(".config.frt.frtconnectionpool");
diff --git a/config/src/vespa/config/subscription/sourcespec.cpp b/config/src/vespa/config/subscription/sourcespec.cpp
index 0bdcf2acbc5..0ab0806885f 100644
--- a/config/src/vespa/config/subscription/sourcespec.cpp
+++ b/config/src/vespa/config/subscription/sourcespec.cpp
@@ -13,7 +13,6 @@
#include <vespa/config/print/asciiconfigwriter.h>
#include <vespa/vespalib/util/size_literals.h>
#include <vespa/fnet/transport.h>
-#include <vespa/fastos/thread.h>
#include <cassert>
namespace config {
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/externpolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/externpolicy.cpp
index 70f6fc24d83..43082d9dbae 100644
--- a/documentapi/src/vespa/documentapi/messagebus/policies/externpolicy.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/policies/externpolicy.cpp
@@ -7,7 +7,6 @@
#include <vespa/slobrok/sbmirror.h>
#include <vespa/fnet/transport.h>
#include <vespa/fnet/frt/supervisor.h>
-#include <vespa/fastos/thread.h>
#include <vespa/log/log.h>
LOG_SETUP(".externpolicy");
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.cpp
index 34d2b6d3369..b2b648545cc 100644
--- a/documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.cpp
@@ -9,7 +9,6 @@
#include <vespa/slobrok/sbmirror.h>
#include <vespa/fnet/frt/supervisor.h>
#include <vespa/fnet/transport.h>
-#include <vespa/fastos/thread.h>
#include <thread>
using slobrok::api::IMirrorAPI;
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/mirror_with_all.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/mirror_with_all.cpp
index 6e9a00dcdb6..d425bfb6679 100644
--- a/documentapi/src/vespa/documentapi/messagebus/policies/mirror_with_all.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/policies/mirror_with_all.cpp
@@ -5,7 +5,6 @@
#include <vespa/slobrok/sbmirror.h>
#include <vespa/fnet/frt/supervisor.h>
#include <vespa/fnet/transport.h>
-#include <vespa/fastos/thread.h>
namespace documentapi {
diff --git a/searchcore/src/apps/proton/proton.cpp b/searchcore/src/apps/proton/proton.cpp
index 4d21143935b..281d7585274 100644
--- a/searchcore/src/apps/proton/proton.cpp
+++ b/searchcore/src/apps/proton/proton.cpp
@@ -10,7 +10,6 @@
#include <vespa/config/common/exceptions.h>
#include <vespa/config/common/configcontext.h>
#include <vespa/fnet/transport.h>
-#include <vespa/fastos/thread.h>
#include <vespa/fastos/file.h>
#include <filesystem>
#include <iostream>
@@ -45,7 +44,7 @@ private:
static void setupSignals();
static void setup_fadvise();
Params parseParams(int argc, char **argv);
- void startAndRun(FastOS_ThreadPool & threadPool, FNET_Transport & transport, int argc, char **argv);
+ void startAndRun(FNET_Transport & transport, int argc, char **argv);
public:
int main(int argc, char **argv);
};
@@ -222,7 +221,7 @@ private:
}
void
-App::startAndRun(FastOS_ThreadPool & threadPool, FNET_Transport & transport, int argc, char **argv) {
+App::startAndRun(FNET_Transport & transport, int argc, char **argv) {
Params params = parseParams(argc, argv);
LOG(debug, "identity: '%s'", params.identity.c_str());
LOG(debug, "serviceidentity: '%s'", params.serviceidentity.c_str());
@@ -231,7 +230,7 @@ App::startAndRun(FastOS_ThreadPool & threadPool, FNET_Transport & transport, int
config::ConfigServerSpec configServerSpec(transport);
config::ConfigUri identityUri(params.identity, std::make_shared<config::ConfigContext>(configServerSpec));
- auto protonUP = std::make_unique<proton::Proton>(threadPool, transport, identityUri,
+ auto protonUP = std::make_unique<proton::Proton>(transport, identityUri,
(argc > 0) ? argv[0] : "proton", subscribeTimeout);
proton::Proton & proton = *protonUP;
proton::BootstrapConfig::SP configSnapshot = proton.init();
@@ -283,9 +282,8 @@ App::main(int argc, char **argv)
try {
setupSignals();
setup_fadvise();
- FastOS_ThreadPool threadPool;
Transport transport(buildTransportConfig());
- startAndRun(threadPool, transport.transport(), argc, argv);
+ startAndRun(transport.transport(), argc, argv);
} catch (const vespalib::InvalidCommandLineArgumentsException &e) {
LOG(warning, "Invalid commandline arguments: '%s'", e.what());
return 1;
diff --git a/searchcore/src/apps/vespa-transactionlog-inspect/vespa-transactionlog-inspect.cpp b/searchcore/src/apps/vespa-transactionlog-inspect/vespa-transactionlog-inspect.cpp
index d69c978729d..50b5dadddbc 100644
--- a/searchcore/src/apps/vespa-transactionlog-inspect/vespa-transactionlog-inspect.cpp
+++ b/searchcore/src/apps/vespa-transactionlog-inspect/vespa-transactionlog-inspect.cpp
@@ -19,7 +19,6 @@
#include <vespa/vespalib/util/signalhandler.h>
#include <iostream>
#include <thread>
-#include <vespa/fastos/thread.h>
#include <vespa/log/log.h>
LOG_SETUP("vespa-transactionlog-inspect");
diff --git a/searchcore/src/tests/proton/common/timer/timer_test.cpp b/searchcore/src/tests/proton/common/timer/timer_test.cpp
index e3df6b319a9..4ff970df84e 100644
--- a/searchcore/src/tests/proton/common/timer/timer_test.cpp
+++ b/searchcore/src/tests/proton/common/timer/timer_test.cpp
@@ -1,6 +1,5 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/fastos/thread.h>
#include <vespa/fnet/transport.h>
#include <vespa/searchcore/proton/common/scheduled_forward_executor.h>
#include <vespa/searchcore/proton/common/scheduledexecutor.h>
diff --git a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
index 6f034161ac4..5afe0a0c5a2 100644
--- a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
@@ -4,7 +4,6 @@
#include <vespa/document/repo/documenttyperepo.h>
#include <vespa/document/datatype/documenttype.h>
#include <vespa/document/test/make_bucket_space.h>
-#include <vespa/fastos/thread.h>
#include <vespa/persistence/dummyimpl/dummy_bucket_executor.h>
#include <vespa/searchcore/proton/attribute/attribute_config_inspector.h>
#include <vespa/searchcore/proton/attribute/attribute_usage_filter.h>
diff --git a/searchcore/src/tests/proton/proton_config_fetcher/proton_config_fetcher_test.cpp b/searchcore/src/tests/proton/proton_config_fetcher/proton_config_fetcher_test.cpp
index 4b6ffd07b8a..13371521718 100644
--- a/searchcore/src/tests/proton/proton_config_fetcher/proton_config_fetcher_test.cpp
+++ b/searchcore/src/tests/proton/proton_config_fetcher/proton_config_fetcher_test.cpp
@@ -305,8 +305,7 @@ TEST_FFF("require that proton config fetcher follows changes to bootstrap",
ConfigTestFixture("search"),
ProtonConfigOwner(),
ProtonConfigFetcher(f1.transport.transport(), ConfigUri(f1.configId, f1.context), f2, 60s)) {
- FastOS_ThreadPool pool;
- f3.start(pool);
+ f3.start();
ASSERT_TRUE(f2._configured);
ASSERT_TRUE(f1.configEqual(f2.getBootstrapConfig()));
f2._configured = false;
@@ -321,8 +320,7 @@ TEST_FFF("require that proton config fetcher follows changes to doctypes",
ConfigTestFixture("search"),
ProtonConfigOwner(),
ProtonConfigFetcher(f1.transport.transport(), ConfigUri(f1.configId, f1.context), f2, 60s)) {
- FastOS_ThreadPool pool;
- f3.start(pool);
+ f3.start();
f2._configured = false;
f1.addDocType("typea");
@@ -342,8 +340,7 @@ TEST_FFF("require that proton config fetcher reconfigures dbowners",
ConfigTestFixture("search"),
ProtonConfigOwner(),
ProtonConfigFetcher(f1.transport.transport(), ConfigUri(f1.configId, f1.context), f2, 60s)) {
- FastOS_ThreadPool pool;
- f3.start(pool);
+ f3.start();
ASSERT_FALSE(f2.getDocumentDBConfig("typea"));
// Add db and verify that config for db is provided
diff --git a/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.cpp b/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.cpp
index 4b83b7d5af9..3e577bf6cbe 100644
--- a/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.cpp
+++ b/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.cpp
@@ -10,7 +10,6 @@
#include <vespa/searchcore/proton/common/eventlogger.h>
#include <vespa/searchlib/common/flush_token.h>
#include <vespa/vespalib/util/cpu_usage.h>
-#include <thread>
#include <vespa/log/log.h>
LOG_SETUP(".proton.flushengine.flushengine");
@@ -86,7 +85,8 @@ FlushEngine::FlushEngine(std::shared_ptr<flushengine::ITlsStatsFactory> tlsStats
_maxConcurrent(numThreads),
_idleInterval(idleInterval),
_taskId(0),
- _threadPool(),
+ _thread(),
+ _has_thread(false),
_strategy(std::move(strategy)),
_priorityStrategy(),
_executor(numThreads, CpuUsage::wrap(flush_engine_executor, CpuUsage::Category::COMPACT)),
@@ -111,9 +111,7 @@ FlushEngine::~FlushEngine()
FlushEngine &
FlushEngine::start()
{
- if (_threadPool.NewThread(this) == nullptr) {
- throw vespalib::IllegalStateException("Failed to start engine thread.");
- }
+ _thread = std::thread([this](){run();});
return *this;
}
@@ -127,7 +125,9 @@ FlushEngine::close()
_closed = true;
_cond.notify_all();
}
- _threadPool.Close();
+ if (_thread.joinable()) {
+ _thread.join();
+ }
_executor.shutdown();
_executor.sync();
return *this;
@@ -168,8 +168,9 @@ FlushEngine::wait(vespalib::duration minimumWaitTimeIfReady, bool ignorePendingP
}
void
-FlushEngine::Run(FastOS_ThreadInterface *, void *)
+FlushEngine::run()
{
+ _has_thread = true;
bool shouldIdle = false;
vespalib::string prevFlushName;
while (wait(shouldIdle ? _idleInterval : vespalib::duration::zero(), false)) {
@@ -190,6 +191,7 @@ FlushEngine::Run(FastOS_ThreadInterface *, void *)
}
_executor.sync();
prune();
+ _has_thread = false;
}
namespace {
diff --git a/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h b/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h
index 4b15c3503f3..1d6ed763ff6 100644
--- a/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h
+++ b/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h
@@ -7,7 +7,7 @@
#include <vespa/searchcore/proton/common/doctypename.h>
#include <vespa/vespalib/util/threadstackexecutor.h>
#include <vespa/vespalib/util/time.h>
-#include <vespa/fastos/thread.h>
+#include <thread>
#include <set>
#include <mutex>
#include <condition_variable>
@@ -18,7 +18,7 @@ namespace proton {
namespace flushengine { class ITlsStatsFactory; }
-class FlushEngine final : public FastOS_Runnable
+class FlushEngine
{
public:
class FlushMeta {
@@ -54,7 +54,8 @@ private:
const uint32_t _maxConcurrent;
const vespalib::duration _idleInterval;
uint32_t _taskId;
- FastOS_ThreadPool _threadPool;
+ std::thread _thread;
+ std::atomic<bool> _has_thread;
IFlushStrategy::SP _strategy;
mutable IFlushStrategy::SP _priorityStrategy;
vespalib::ThreadStackExecutor _executor;
@@ -109,7 +110,7 @@ public:
/**
* Destructor. Waits for all pending tasks to complete.
*/
- ~FlushEngine() override;
+ ~FlushEngine();
/**
* Observe and reset internal executor stats
@@ -129,7 +130,8 @@ public:
* @return This, to allow chaining.
*/
FlushEngine &start();
-
+ bool has_thread() const { return _has_thread; }
+
/**
* Stops the scheduling thread and. This will prevent any more flush
* requests being performed on the attached handlers, allowing you to flush
@@ -168,7 +170,7 @@ public:
*/
IFlushHandler::SP removeFlushHandler(const DocTypeName &docTypeName);
- void Run(FastOS_ThreadInterface *thread, void *arg) override;
+ void run();
FlushMetaSet getCurrentlyFlushingSet() const;
diff --git a/searchcore/src/vespa/searchcore/proton/server/prepare_restart_handler.cpp b/searchcore/src/vespa/searchcore/proton/server/prepare_restart_handler.cpp
index 97b66600817..0ec0e6a1147 100644
--- a/searchcore/src/vespa/searchcore/proton/server/prepare_restart_handler.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/prepare_restart_handler.cpp
@@ -21,7 +21,7 @@ bool
PrepareRestartHandler::prepareRestart(const ProtonConfig &protonCfg)
{
std::unique_lock lock(_mutex);
- if (!_flushEngine.HasThread()) {
+ if (!_flushEngine.has_thread()) {
return false;
}
if (!_running) {
diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.cpp b/searchcore/src/vespa/searchcore/proton/server/proton.cpp
index 34961414d57..c508706ad28 100644
--- a/searchcore/src/vespa/searchcore/proton/server/proton.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/proton.cpp
@@ -215,7 +215,7 @@ Proton::ProtonFileHeaderContext::setClusterName(const vespalib::string & cluster
}
-Proton::Proton(FastOS_ThreadPool & threadPool, FNET_Transport & transport, const config::ConfigUri & configUri,
+Proton::Proton(FNET_Transport & transport, const config::ConfigUri & configUri,
const vespalib::string &progName, vespalib::duration subscribeTimeout)
: IProtonConfigurerOwner(),
search::engine::MonitorServer(),
@@ -225,7 +225,6 @@ Proton::Proton(FastOS_ThreadPool & threadPool, FNET_Transport & transport, const
ComponentConfigProducer(),
_cpu_util(),
_hw_info(),
- _threadPool(threadPool),
_transport(transport),
_configUri(configUri),
_mutex(),
@@ -277,7 +276,7 @@ Proton::init()
{
assert( ! _initStarted && ! _initComplete );
_initStarted = true;
- _protonConfigFetcher.start(_threadPool);
+ _protonConfigFetcher.start();
auto configSnapshot = _protonConfigurer.getPendingConfigSnapshot();
assert(configSnapshot);
auto bootstrapConfig = configSnapshot->getBootstrapConfig();
@@ -757,7 +756,7 @@ Proton::ping(std::unique_ptr<MonitorRequest>, MonitorClient &)
bool
Proton::triggerFlush()
{
- if (!_flushEngine || ! _flushEngine->HasThread()) {
+ if (!_flushEngine || ! _flushEngine->has_thread()) {
return false;
}
_flushEngine->triggerFlush();
diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.h b/searchcore/src/vespa/searchcore/proton/server/proton.h
index bf84650867a..a5da72671d2 100644
--- a/searchcore/src/vespa/searchcore/proton/server/proton.h
+++ b/searchcore/src/vespa/searchcore/proton/server/proton.h
@@ -88,7 +88,6 @@ private:
vespalib::CpuUtil _cpu_util;
HwInfo _hw_info;
- FastOS_ThreadPool & _threadPool;
FNET_Transport & _transport;
const config::ConfigUri _configUri;
mutable std::shared_mutex _mutex;
@@ -156,7 +155,7 @@ public:
using UP = std::unique_ptr<Proton>;
using SP = std::shared_ptr<Proton>;
- Proton(FastOS_ThreadPool & threadPool, FNET_Transport & transport, const config::ConfigUri & configUri,
+ Proton(FNET_Transport & transport, const config::ConfigUri & configUri,
const vespalib::string &progName, vespalib::duration subscribeTimeout);
~Proton() override;
@@ -193,7 +192,6 @@ public:
const std::shared_ptr<DocumentDBConfig> &documentDBConfig, InitializeThreads initializeThreads);
metrics::MetricManager & getMetricManager();
- FastOS_ThreadPool & getThreadPool() { return _threadPool; }
bool triggerFlush();
bool prepareRestart();
diff --git a/searchcore/src/vespa/searchcore/proton/server/proton_config_fetcher.cpp b/searchcore/src/vespa/searchcore/proton/server/proton_config_fetcher.cpp
index 64a09a0bb25..0311cf4a48b 100644
--- a/searchcore/src/vespa/searchcore/proton/server/proton_config_fetcher.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/proton_config_fetcher.cpp
@@ -29,6 +29,7 @@ ProtonConfigFetcher::ProtonConfigFetcher(FNET_Transport & transport, const confi
_cond(),
_dbManagerMap(),
_running(false),
+ _thread(),
_oldDocumentTypeRepos(),
_currentDocumentTypeRepo()
{
@@ -40,10 +41,8 @@ ProtonConfigFetcher::~ProtonConfigFetcher()
}
void
-ProtonConfigFetcher::Run(FastOS_ThreadInterface * thread, void *arg)
+ProtonConfigFetcher::run()
{
- (void) arg;
- (void) thread;
while (!_retriever.isClosed()) {
try {
fetchConfigs();
@@ -166,17 +165,13 @@ ProtonConfigFetcher::getGeneration() const
}
void
-ProtonConfigFetcher::start(FastOS_ThreadPool & threadPool)
+ProtonConfigFetcher::start()
{
fetchConfigs();
lock_guard guard(_mutex);
if (_running) return;
_running = true;
- if (threadPool.NewThread(this, nullptr) == nullptr) {
- _running = false;
- throw vespalib::IllegalStateException(
- "Failed starting thread for proton config fetcher");
- }
+ _thread = std::thread([this](){run();});
}
void
@@ -189,6 +184,9 @@ ProtonConfigFetcher::close()
while (_running) {
_cond.wait(guard);
}
+ if (_thread.joinable()) {
+ _thread.join();
+ }
}
void
diff --git a/searchcore/src/vespa/searchcore/proton/server/proton_config_fetcher.h b/searchcore/src/vespa/searchcore/proton/server/proton_config_fetcher.h
index b0046e17a63..9f9104df0af 100644
--- a/searchcore/src/vespa/searchcore/proton/server/proton_config_fetcher.h
+++ b/searchcore/src/vespa/searchcore/proton/server/proton_config_fetcher.h
@@ -4,7 +4,6 @@
#include "bootstrapconfigmanager.h"
#include "i_document_db_config_owner.h"
-#include <vespa/fastos/thread.h>
#include <vespa/searchcore/proton/common/doctypename.h>
#include <vespa/config/retriever/configretriever.h>
#include <vespa/config/subscription/configuri.h>
@@ -24,13 +23,13 @@ class IProtonConfigurer;
* A ProtonConfigFetcher monitors all config in proton and document dbs for change
* and starts proton reconfiguration if config has been reloaded.
*/
-class ProtonConfigFetcher : public FastOS_Runnable
+class ProtonConfigFetcher
{
public:
using BootstrapConfigSP = std::shared_ptr<BootstrapConfig>;
ProtonConfigFetcher(FNET_Transport & transport, const config::ConfigUri & configUri, IProtonConfigurer &owner, vespalib::duration subscribeTimeout);
- ~ProtonConfigFetcher() override;
+ ~ProtonConfigFetcher();
/**
* Get the current config generation.
*/
@@ -39,14 +38,14 @@ public:
/**
* Start config fetcher, callbacks may come from now on.
*/
- void start(FastOS_ThreadPool & threadPool);
+ void start();
/**
* Shutdown config fetcher, ensuring that no more callbacks arrive
*/
void close();
- void Run(FastOS_ThreadInterface * thread, void *arg) override;
+ void run();
private:
using DBManagerMap = std::map<DocTypeName, std::shared_ptr<DocumentDBConfigManager>>;
@@ -63,7 +62,8 @@ private:
std::condition_variable _cond;
DBManagerMap _dbManagerMap;
bool _running;
-
+ std::thread _thread;
+
std::deque<OldDocumentTypeRepo> _oldDocumentTypeRepos;
std::shared_ptr<const document::DocumentTypeRepo> _currentDocumentTypeRepo;
diff --git a/searchcore/src/vespa/searchcore/proton/test/transport_helper.cpp b/searchcore/src/vespa/searchcore/proton/test/transport_helper.cpp
index 454a7093087..92e9dadf898 100644
--- a/searchcore/src/vespa/searchcore/proton/test/transport_helper.cpp
+++ b/searchcore/src/vespa/searchcore/proton/test/transport_helper.cpp
@@ -1,7 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "transport_helper.h"
-#include <vespa/fastos/thread.h>
#include <vespa/fnet/transport.h>
#include <vespa/searchcore/proton/server/executorthreadingservice.h>
#include <vespa/vespalib/util/sequencedtaskexecutor.h>
diff --git a/storage/src/tests/storageserver/statereportertest.cpp b/storage/src/tests/storageserver/statereportertest.cpp
index e9b2f04eb04..d6b528e5a25 100644
--- a/storage/src/tests/storageserver/statereportertest.cpp
+++ b/storage/src/tests/storageserver/statereportertest.cpp
@@ -15,7 +15,6 @@
#include <vespa/vespalib/gtest/gtest.h>
#include <vespa/vespalib/util/size_literals.h>
#include <thread>
-#include <vespa/fastos/thread.h>
#include <vespa/log/log.h>
LOG_SETUP(".test.statereporter");