]> granicus.if.org Git - icinga2/commitdiff
Initialize Socket Event Engine on application startup 6630/head
authorMichael Friedrich <michael.friedrich@icinga.com>
Mon, 24 Sep 2018 13:50:59 +0000 (15:50 +0200)
committerMichael Friedrich <michael.friedrich@icinga.com>
Mon, 24 Sep 2018 13:50:59 +0000 (15:50 +0200)
Previously this happened inside the TlsStream constructor
during the first connection attempt.

lib/base/socketevents.cpp
lib/base/socketevents.hpp

index b967a345fff6181ff497df7ff0a507f05169abe7..0e2be5017b8bdc646b96848ca3289193a4b41b5e 100644 (file)
@@ -35,6 +35,8 @@ static SocketEventEngine *l_SocketIOEngine;
 
 int SocketEvents::m_NextID = 0;
 
+INITIALIZE_ONCE(&SocketEvents::InitializeEngine);
+
 void SocketEventEngine::Start()
 {
        for (int tid = 0; tid < SOCKET_IOTHREADS; tid++) {
@@ -114,8 +116,6 @@ void SocketEvents::InitializeEngine()
 SocketEvents::SocketEvents(const Socket::Ptr& socket, Object *lifesupportObject)
        : m_ID(m_NextID++), m_FD(socket->GetFD()), m_EnginePrivate(nullptr)
 {
-       boost::call_once(l_SocketIOOnceFlag, &SocketEvents::InitializeEngine);
-
        Register(lifesupportObject);
 }
 
index 360a034770beb804596e99f27423a657c72fba4f..fce7eef86c370b1e7122d62c94bf7219df11c71d 100644 (file)
@@ -53,6 +53,8 @@ public:
        void *GetEnginePrivate() const;
        void SetEnginePrivate(void *priv);
 
+       static void InitializeEngine();
+
 protected:
        SocketEvents(const Socket::Ptr& socket, Object *lifesupportObject);
 
@@ -64,8 +66,6 @@ private:
 
        static int m_NextID;
 
-       static void InitializeEngine();
-
        void WakeUpThread(bool wait = false);
 
        void Register(Object *lifesupportObject);