#include "base/convert.hpp"
#include "base/objectlock.hpp"
#include "base/utility.hpp"
-#include "base/initialize.hpp"
#include "base/logger.hpp"
#include "base/function.hpp"
#include "base/exception.hpp"
REGISTER_SCRIPTFUNCTION(ValidateFailoverTimeout, &DbConnection::ValidateFailoverTimeout);
Timer::Ptr DbConnection::m_ProgramStatusTimer;
-
-INITIALIZE_ONCE(&DbConnection::StaticInitialize);
+boost::once_flag DbConnection::m_OnceFlag = BOOST_ONCE_INIT;
void DbConnection::OnConfigLoaded(void)
{
SetHAMode(HARunEverywhere);
}
+
+ boost::call_once(m_OnceFlag, InitializeDbTimer);
}
void DbConnection::Start(void)
m_CleanUpTimer.reset();
}
-void DbConnection::StaticInitialize(void)
+void DbConnection::InitializeDbTimer(void)
{
m_ProgramStatusTimer = new Timer();
m_ProgramStatusTimer->SetInterval(10);
#include "db_ido/dbobject.hpp"
#include "db_ido/dbquery.hpp"
#include "base/timer.hpp"
+#include <boost/thread/once.hpp>
namespace icinga
{
public:
DECLARE_OBJECT(DbConnection);
- static void StaticInitialize(void);
+ static void InitializeDbTimer(void);
void SetObjectID(const DbObject::Ptr& dbobj, const DbReference& dbref);
DbReference GetObjectID(const DbObject::Ptr& dbobj) const;
virtual void ClearConfigTable(const String& table) = 0;
static Timer::Ptr m_ProgramStatusTimer;
+ static boost::once_flag m_OnceFlag;
static void InsertRuntimeVariable(const String& key, const Value& value);
static void ProgramStatusHandler(void);