diff options
6 files changed, 19 insertions, 28 deletions
diff --git a/searchcore/src/apps/proton/proton.cpp b/searchcore/src/apps/proton/proton.cpp index 7515ddc4e23..6fab53204c3 100644 --- a/searchcore/src/apps/proton/proton.cpp +++ b/searchcore/src/apps/proton/proton.cpp @@ -224,9 +224,9 @@ App::Main() proton.getMetricManager().init(params.identity, proton.getThreadPool()); } EV_STARTED("proton"); - while (!(SIG::INT.check() || SIG::TERM.check())) { + while (!(SIG::INT.check() || SIG::TERM.check() || (spiProton && spiProton->getNode().attemptedStopped()))) { FastOS_Thread::Sleep(1000); - if (spiProton.get() && spiProton->configUpdated()) { + if (spiProton && spiProton->configUpdated()) { storage::ResumeGuard guard(spiProton->getNode().pause()); spiProton->updateConfig(); } @@ -247,7 +247,7 @@ App::Main() } } } - if (spiProton.get()) { + if (spiProton) { spiProton->getNode().requestShutdown("controlled shutdown"); spiProton->shutdown(); EV_STOPPING("servicelayer", "clean shutdown"); diff --git a/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp b/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp index 55de1d9ee87..483cffaf751 100644 --- a/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp +++ b/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp @@ -56,7 +56,7 @@ void StatusWebServer::configure(std::unique_ptr<vespa::config::content::core::St int newPort = config->httpport; // If server is already running, ignore config updates that doesn't // alter port, or suggests random port. - if (_httpServer.get() != 0) { + if (_httpServer) { if (newPort == 0 || newPort == _port) return; } // Try to create new server before destroying old. @@ -88,21 +88,23 @@ void StatusWebServer::configure(std::unique_ptr<vespa::config::content::core::St if (!started) { std::ostringstream ost; ost << "Failed to start status HTTP server using port " << newPort << "."; - if (_httpServer.get() != 0) { + if (_httpServer) { ost << " Status server still running on port " << _port << " instead of suggested port " << newPort; } LOG(fatal, "%s.", ost.str().c_str()); _component->requestShutdown(ost.str()); + _httpServer.reset(); + return; } // Now that we know config update went well, update internal state _port = server->getListenPort(); LOG(config, "Status pages now available on port %u", _port); - if (_httpServer.get() != 0) { + if (_httpServer) { LOG(debug, "Shutting down old status server."); - _httpServer.reset(0); + _httpServer.reset(); LOG(debug, "Done shutting down old status server."); } - } else if (_httpServer.get() != 0) { + } else if (_httpServer) { LOG(info, "No longer running status server as negative port was given " "in config, indicating not to run a server."); } diff --git a/storage/src/vespa/storage/storageserver/storagenode.cpp b/storage/src/vespa/storage/storageserver/storagenode.cpp index 27f98b478ce..85f54431cfb 100644 --- a/storage/src/vespa/storage/storageserver/storagenode.cpp +++ b/storage/src/vespa/storage/storageserver/storagenode.cpp @@ -103,13 +103,13 @@ StorageNode::subscribeToConfigs() void StorageNode::initialize() { + _context.getComponentRegister().registerShutdownListener(*this); + // Fetch configs needed first. These functions will just grab the config // and store them away, while having the config lock. subscribeToConfigs(); - _context.getMemoryManager().setMaximumMemoryUsage( - _serverConfig->memorytouse); - _context.getComponentRegister().registerShutdownListener(*this); + _context.getMemoryManager().setMaximumMemoryUsage(_serverConfig->memorytouse); updateUpgradeFlag(*_clusterConfig); // First update some basics that doesn't depend on anything else to be diff --git a/storageframework/src/vespa/storageframework/defaultimplementation/component/componentregisterimpl.cpp b/storageframework/src/vespa/storageframework/defaultimplementation/component/componentregisterimpl.cpp index cda2fee4628..a03f79b008d 100644 --- a/storageframework/src/vespa/storageframework/defaultimplementation/component/componentregisterimpl.cpp +++ b/storageframework/src/vespa/storageframework/defaultimplementation/component/componentregisterimpl.cpp @@ -5,9 +5,7 @@ #include <vespa/metrics/metricmanager.h> #include <vespa/vespalib/util/exceptions.h> -namespace storage { -namespace framework { -namespace defaultimplementation { +namespace storage::framework::defaultimplementation { ComponentRegisterImpl::ComponentRegisterImpl() : _componentLock(), @@ -184,6 +182,4 @@ ComponentRegisterImpl::registerShutdownListener(ShutdownListener& listener) _shutdownListener = &listener; } -} // defaultimplementation -} // framework -} // storage +} diff --git a/storageframework/src/vespa/storageframework/generic/component/component.cpp b/storageframework/src/vespa/storageframework/generic/component/component.cpp index 6457ed73795..a35cad68b00 100644 --- a/storageframework/src/vespa/storageframework/generic/component/component.cpp +++ b/storageframework/src/vespa/storageframework/generic/component/component.cpp @@ -4,10 +4,8 @@ #include "componentregister.h" #include <vespa/storageframework/generic/metric/metricregistrator.h> #include <vespa/storageframework/generic/thread/threadpool.h> -#include <vespa/vespalib/util/sync.h> -namespace storage { -namespace framework { +namespace storage::framework { void Component::open() @@ -137,6 +135,4 @@ Component::requestShutdown(vespalib::stringref reason) _componentRegister->requestShutdown(reason); } -} // framework -} // storage - +} diff --git a/storageframework/src/vespa/storageframework/generic/component/componentregister.h b/storageframework/src/vespa/storageframework/generic/component/componentregister.h index 521e23ba1aa..3babd8b29bc 100644 --- a/storageframework/src/vespa/storageframework/generic/component/componentregister.h +++ b/storageframework/src/vespa/storageframework/generic/component/componentregister.h @@ -13,8 +13,7 @@ #include <vespa/vespalib/stllike/string.h> -namespace storage { -namespace framework { +namespace storage::framework { class ManagedComponent; @@ -25,6 +24,4 @@ struct ComponentRegister { virtual void requestShutdown(vespalib::stringref reason) = 0; }; -} // framework -} // storage - +} |