Обсуждаем внутренности птохи?
Запустил под профайлером и увидел что часто зовутся KillTimer и SetTimer
при этом таймер убивается внутри обработчика WM_TIMER
кто знает зачем так сделано?
этот таймер настроен на 10 раз в секунду.
Код: Выделить всё
	        } else if(msg.message == WM_TIMER) {
				if (msg.wParam == clsServerManager::sectimer) {
					clsServerManager::OnSecTimer();
				} else if (msg.wParam == clsServiceLoop::srvLoopTimer) {
                    clsServiceLoop::mPtr->Looper();
void clsServiceLoop::Looper() {
#ifdef _WIN32
	KillTimer(NULL, srvLoopTimer);
#endif
	// PPK ... two loop stategy for saving badwith
	if(bRecv == true) {
		ReceiveLoop();
	} else {
		SendLoop();
		clsEventQueue::mPtr->ProcessEvents();
	}
	if(clsServerManager::bServerTerminated == false) {
		bRecv = !bRecv;
#ifdef _WIN32
        srvLoopTimer = SetTimer(NULL, 0, 100, NULL);
	    if(srvLoopTimer == 0) {
	        AppendDebugLog("%s - [ERR] Cannot start Looper in clsServiceLoop::Looper\n", 0);
	        exit(EXIT_FAILURE);
	    }
#endif
	} else {
	    // tell the scripts about the end
	    clsScriptManager::mPtr->OnExit();
	    
	    // send last possible global data
	    clsGlobalDataQueue::mPtr->SendFinalQueue();
	    
	    clsServerManager::FinalStop(true);
	}
}


 
   
 



