BOOL FinalTCPServer() { if(end_point) { UnregisterEndPoint(end_point); } for(;;) { unsigned int count = 0; for(int i=0; i<sizeof(g_csClients)/sizeof(g_csClients[0]); i++) { EnterCriticalSection(&g_csClients[i]); if(g_mapClients[i]) { g_mapClients[i]->Disconnect(); count++; } LeaveCriticalSection(&g_csClients[i]); } if(count==0) break; Sleep(10); } if(mem_pool) { FreeIoBufferPool(mem_pool); } for(int i=0; i<sizeof(g_csClients)/sizeof(g_csClients[0]); i++) { DeleteCriticalSection(&g_csClients[i]); } return true; }
~CAsyncIOInit() { KillWorkers(m_workers); FreeIoBufferPool(m_iopool); ASockIOFini(); }