Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
//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
}  
Exemplo n.º 3
0
    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);
    }
Exemplo n.º 4
0
    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);
    }
Exemplo n.º 5
0
void StreamStorage::save(std::ostream &os, const TimerManager &manager) {
   auto &templates = manager.getTimerTemplateList();
   write(os, templates.size());
   for (auto &entry : templates) {
      save(os, *entry);
   }
}
Exemplo n.º 6
0
void
sleep(TimerManager &timerManager, unsigned long long us)
{
    MORDOR_ASSERT(Scheduler::getThis());
    timerManager.registerTimer(us,
        boost::bind(&scheduleMe, Scheduler::getThis(), Fiber::getThis()));
    Scheduler::yieldTo();
}
Exemplo n.º 7
0
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;
}
Exemplo n.º 8
0
TBool Timer::IsInManagerThread(TimerManager& aMgr)
{ // static
    Thread* current = NULL;
    try {
        current = Thread::Current();
    }
    catch (ThreadUnknown&) {}
    return (current == aMgr.MgrThread());
}
Exemplo n.º 9
0
 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);
 }
Exemplo n.º 10
0
    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;
}
Exemplo n.º 12
0
TBool Timer::IsInManagerThread(TimerManager& aMgr)
{ // static
    return (Thread::Current() == aMgr.MgrThread());
}