mirror of https://github.com/Icinga/icinga2.git
Use std::mutex instead of Spinlock
This commit is contained in:
parent
74b65f1642
commit
e4610e7dbd
|
@ -20,7 +20,7 @@ using namespace icinga;
|
|||
|
||||
REGISTER_APIFUNCTION(Update, config, &ApiListener::ConfigUpdateHandler);
|
||||
|
||||
SpinLock ApiListener::m_ConfigSyncStageLock;
|
||||
std::mutex ApiListener::m_ConfigSyncStageLock;
|
||||
|
||||
/**
|
||||
* Entrypoint for updating all authoritative configs from /etc/zones.d, packages, etc.
|
||||
|
@ -330,7 +330,7 @@ void ApiListener::HandleConfigUpdate(const MessageOrigin::Ptr& origin, const Dic
|
|||
/* Only one transaction is allowed, concurrent message handlers need to wait.
|
||||
* This affects two parent endpoints sending the config in the same moment.
|
||||
*/
|
||||
auto lock (Shared<std::unique_lock<SpinLock>>::Make(m_ConfigSyncStageLock));
|
||||
std::lock_guard<std::mutex> lock(m_ConfigSyncStageLock);
|
||||
|
||||
String apiZonesStageDir = GetApiZonesStageDir();
|
||||
String fromEndpointName = origin->FromClient->GetEndpoint()->GetName();
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
#include "base/configobject.hpp"
|
||||
#include "base/process.hpp"
|
||||
#include "base/shared.hpp"
|
||||
#include "base/spinlock.hpp"
|
||||
#include "base/timer.hpp"
|
||||
#include "base/workqueue.hpp"
|
||||
#include "base/tcpsocket.hpp"
|
||||
|
@ -188,7 +187,7 @@ private:
|
|||
void RemoveStatusFile();
|
||||
|
||||
/* filesync */
|
||||
static SpinLock m_ConfigSyncStageLock;
|
||||
static std::mutex m_ConfigSyncStageLock;
|
||||
|
||||
void SyncLocalZoneDirs() const;
|
||||
void SyncLocalZoneDir(const Zone::Ptr& zone) const;
|
||||
|
|
Loading…
Reference in New Issue