void testTwoTasksOrdered() { task1_m.execTime_m = timeref1_m + 5; task2_m.execTime_m = timeref1_m + 10; timermanager_m->addTask(&task1_m); timermanager_m->addTask(&task2_m); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref2_m) == TimerManager::Immediate); CPPUNIT_ASSERT(task1_m.isOnTimerCalled_m == true); CPPUNIT_ASSERT(task2_m.isOnTimerCalled_m == false); task1_m.isOnTimerCalled_m = false; task2_m.isOnTimerCalled_m = false; CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref2_m) == TimerManager::Immediate); CPPUNIT_ASSERT(task1_m.isOnTimerCalled_m == false); CPPUNIT_ASSERT(task2_m.isOnTimerCalled_m == true); task1_m.isOnTimerCalled_m = false; task2_m.isOnTimerCalled_m = false; timermanager_m->checkTaskList(timeref2_m); CPPUNIT_ASSERT(task1_m.isOnTimerCalled_m == false); CPPUNIT_ASSERT(task2_m.isOnTimerCalled_m == false); }
//void *thread_1(void *arg) void *Timer_Thread(LPVOID lpPara) { /* int i=0; for(i=0;i<=6;i++) { printf("This is a pthread_1.\n"); if(i==2) pthread_exit(0); sleep(1); } */ TimerManager *tManager = (TimerManager *)lpPara; tManager->m_isThreadExit = false; //CoInitialize(NULL); CHeartbeatGuard hbGuard( "TimerMgr" ); while(tManager->IsRunning()){ hbGuard.alive(); //pthread_exit(0); //jyc20160826 sleep(1); tManager->OnThreadCall(); } printf("pthread test...\n"); tManager->m_isThreadExit = true; //CoUninitialize(); //return 0; //jyc20160826 }
void testOneTaskPast() { task1_m.execTime_m = timeref1_m + 5; timermanager_m->addTask(&task1_m); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref3_m) == TimerManager::Immediate); CPPUNIT_ASSERT(task1_m.isOnTimerCalled_m == false); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref3_m) == TimerManager::Long); CPPUNIT_ASSERT(task1_m.isOnTimerCalled_m == false); }
void testOneTaskFuture() { task1_m.execTime_m = timeref1_m + 5; timermanager_m->addTask(&task1_m); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref1_m) == TimerManager::Short); CPPUNIT_ASSERT(task1_m.isOnTimerCalled_m == false); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref1_m) == TimerManager::Short); CPPUNIT_ASSERT(task1_m.isOnTimerCalled_m == false); }
void StreamStorage::save(std::ostream &os, const TimerManager &manager) { auto &templates = manager.getTimerTemplateList(); write(os, templates.size()); for (auto &entry : templates) { save(os, *entry); } }
void sleep(TimerManager &timerManager, unsigned long long us) { MORDOR_ASSERT(Scheduler::getThis()); timerManager.registerTimer(us, boost::bind(&scheduleMe, Scheduler::getThis(), Fiber::getThis())); Scheduler::yieldTo(); }
unsigned __stdcall TimerThread(LPVOID lpPara) { TimerManager *tManager = (TimerManager *)lpPara; tManager->m_isThreadExit = false; //CoInitialize(NULL); CHeartbeatGuard hbGuard( "TimerMgr" ); while(tManager->IsRunning()){ hbGuard.alive(); sleep(1); tManager->OnThreadCall(); } tManager->m_isThreadExit = true; //CoUninitialize(); return 0; }
TBool Timer::IsInManagerThread(TimerManager& aMgr) { // static Thread* current = NULL; try { current = Thread::Current(); } catch (ThreadUnknown&) {} return (current == aMgr.MgrThread()); }
void testEmptyList() { CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref1_m) == TimerManager::Long); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref2_m) == TimerManager::Long); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref3_m) == TimerManager::Long); }
void testAddRemove() { task1_m.execTime_m = timeref1_m + 5; task2_m.execTime_m = timeref1_m + 10; timermanager_m->addTask(&task1_m); timermanager_m->addTask(&task2_m); timermanager_m->removeTask(&task1_m); timermanager_m->removeTask(&task2_m); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref1_m) == TimerManager::Long); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref2_m) == TimerManager::Long); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref3_m) == TimerManager::Long); timermanager_m->addTask(&task1_m); timermanager_m->addTask(&task2_m); timermanager_m->removeTask(&task2_m); timermanager_m->removeTask(&task1_m); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref1_m) == TimerManager::Long); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref2_m) == TimerManager::Long); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref3_m) == TimerManager::Long); timermanager_m->addTask(&task1_m); timermanager_m->addTask(&task2_m); timermanager_m->removeTask(&task1_m); timermanager_m->addTask(&task1_m); timermanager_m->removeTask(&task2_m); timermanager_m->removeTask(&task1_m); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref1_m) == TimerManager::Long); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref2_m) == TimerManager::Long); CPPUNIT_ASSERT(timermanager_m->checkTaskList(timeref3_m) == TimerManager::Long); }
unsigned int __stdcall TimerManager::callTimerProc(void *argument) { TimerManager* manager = reinterpret_cast<TimerManager*>(argument); manager->timerProc(); return 0; }
TBool Timer::IsInManagerThread(TimerManager& aMgr) { // static return (Thread::Current() == aMgr.MgrThread()); }