diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-10-13 22:13:14 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-10-13 22:56:14 +0000 |
commit | 001bdf0053ba9cb02e20afcceb9d0f7ed63f1178 (patch) | |
tree | b2b0d66c4459114d878cfa61b12e74c39bbb0b74 /storageserver/src | |
parent | 71c10939b19be8ea115cda9ecddcad7749b2c20d (diff) |
Use std::mutex and std:.condition_variable and GC some unused code.
Diffstat (limited to 'storageserver/src')
-rw-r--r-- | storageserver/src/apps/storaged/storage.cpp | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/storageserver/src/apps/storaged/storage.cpp b/storageserver/src/apps/storaged/storage.cpp index 903c61875ed..428067e3059 100644 --- a/storageserver/src/apps/storaged/storage.cpp +++ b/storageserver/src/apps/storaged/storage.cpp @@ -51,12 +51,13 @@ Process::UP createProcess(vespalib::stringref configId) { class StorageApp : public FastOS_Application, private vespalib::ProgramOptions { - std::string _configId; - bool _showSyntax; - uint32_t _maxShutdownTime; - int _lastSignal; - vespalib::Monitor _signalLock; - Process::UP _process; + std::string _configId; + bool _showSyntax; + uint32_t _maxShutdownTime; + int _lastSignal; + std::mutex _signalLock; + std::condition_variable _signalCond; + Process::UP _process; public: StorageApp(); @@ -64,11 +65,10 @@ public: void handleSignal(int signal) { LOG(info, "Got signal %d, waiting for lock", signal); - vespalib::MonitorGuard sync(_signalLock); - + std::lock_guard sync(_signalLock); LOG(info, "Got lock for signal %d", signal); _lastSignal = signal; - sync.signal(); + _signalCond.notify_one(); } void handleSignals(); @@ -103,8 +103,7 @@ StorageApp::~StorageApp() = default; bool StorageApp::Init() { FastOS_Application::Init(); - setCommandLineArguments( - FastOS_Application::_argc, FastOS_Application::_argv); + setCommandLineArguments(FastOS_Application::_argc, FastOS_Application::_argv); try{ parse(); } catch (vespalib::InvalidCommandLineArgumentsException& e) { @@ -192,9 +191,9 @@ int StorageApp::Main() ResumeGuard guard(_process->getNode().pause()); _process->updateConfig(); } - // Wait until we get a kill signal. - vespalib::MonitorGuard lock(_signalLock); - lock.wait(1000ms); + // Wait until we get a kill signal. + std::unique_lock guard(_signalLock); + _signalCond.wait_for(guard, 1000ms); handleSignals(); } LOG(debug, "Server was attempted stopped, shutting down"); |