//----------------------------------------------------------------------------------------------- STATIC void JobManager::Update() { if( s_workerThreads.size() == 0 ) { Job* job = GetJobOfAnyTypeFromTodoList(); if( job ) { job->Execute(); ReportCompletedJob( job ); } } EnterCriticalSection( &s_cs ); while( s_jobsCompleted.size() > 0 ) { Job* completedJob = s_jobsCompleted.front(); completedJob->FireCallbackEvent(); delete completedJob; completedJob = nullptr; s_jobsCompleted.erase( s_jobsCompleted.begin() ); } LeaveCriticalSection( &s_cs ); }