From 8610083a8e8ad66806c66d0199d0d8a900ceb358 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Fri, 17 Jun 2016 16:25:31 +0200 Subject: cNetwork: Fixed possible hang when terminating immediately after init. --- src/OSSupport/NetworkSingleton.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/OSSupport/NetworkSingleton.h') diff --git a/src/OSSupport/NetworkSingleton.h b/src/OSSupport/NetworkSingleton.h index c72df38ec..75713d261 100644 --- a/src/OSSupport/NetworkSingleton.h +++ b/src/OSSupport/NetworkSingleton.h @@ -13,6 +13,7 @@ #pragma once +#include #include "Network.h" #include "CriticalSection.h" #include "Event.h" @@ -127,11 +128,18 @@ protected: /** The thread in which the main LibEvent loop runs. */ std::thread m_EventLoopThread; + /** Event that is signalled once the startup is finished and the LibEvent loop is running. */ + UniquePtr m_StartupEvent; + + /** Converts LibEvent-generated log events into log messages in MCS log. */ static void LogCallback(int a_Severity, const char * a_Msg); /** Implements the thread that runs LibEvent's event dispatcher loop. */ static void RunEventLoop(cNetworkSingleton * a_Self); + + /** Callback called by LibEvent when the event loop is started. */ + static void SignalizeStartup(evutil_socket_t a_Socket, short a_Events, void * a_Self); }; -- cgit v1.2.3