From: Michael Friedrich Date: Mon, 24 Sep 2018 13:50:59 +0000 (+0200) Subject: Initialize Socket Event Engine on application startup X-Git-Tag: v2.10.0~26^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c8dcd1297f6d0be8685c5a3079e40fc44e779add;p=icinga2 Initialize Socket Event Engine on application startup Previously this happened inside the TlsStream constructor during the first connection attempt. --- diff --git a/lib/base/socketevents.cpp b/lib/base/socketevents.cpp index b967a345f..0e2be5017 100644 --- a/lib/base/socketevents.cpp +++ b/lib/base/socketevents.cpp @@ -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); } diff --git a/lib/base/socketevents.hpp b/lib/base/socketevents.hpp index 360a03477..fce7eef86 100644 --- a/lib/base/socketevents.hpp +++ b/lib/base/socketevents.hpp @@ -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);