void SocketReaderRunnable::run() { if(!sSocketManager.GetEventBase()) { sLog.outError(" Couldn't start Socket worker thread. Event_base is wrong!"); return; } sLog.outString(" Socket worker thread is started"); int res = 0; while(!bStop) { Sleep(10); res = event_base_loop(sSocketManager.GetEventBase(), EVLOOP_ONCE); // 0 if successful, // -1 if an error occurred // 1 if no events were registered. if(res == -1) { sLog.outError(" Critical error is occured in event_loot. Exit."); sSocketManager.DisconnectAll(); break; } else if(res == 1) sLog.outError(" No events registered for event_loot. Continue."); sSocketManager.ClearErasedSockets(); } sLog.outString(" Socket worker thread is finished"); }