Example #1
0
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();
		}