void IOLoop :: run() { m_bIsEnd = false; m_bIsStart = true; while(true) { BP->GetIOLoopBP()->OneLoop(); int iNextTimeout = 1000; DealwithTimeout(iNextTimeout); //PLGHead("nexttimeout %d", iNextTimeout); // 3.29 : 这个传入的参数代表还没超时的那个事件 // 还剩下的超时时间。 OneLoop(iNextTimeout); if (m_bIsEnd) { PLGHead("IOLoop [End]"); break; } } }
void EventLoop :: StartLoop() { m_bIsEnd = false; while(true) { BP->GetNetworkBP()->TcpEpollLoop(); int iNextTimeout = 1000; DealwithTimeout(iNextTimeout); //PLHead("nexttimeout %d", iNextTimeout); OneLoop(iNextTimeout); //deal with accept fds if (m_poTcpAcceptor != nullptr) { m_poTcpAcceptor->CreateEvent(); } if (m_poTcpClient != nullptr) { m_poTcpClient->DealWithWrite(); } if (m_bIsEnd) { PLHead("TCP.EventLoop [END]"); break; } } }