int main(int argc, char* argv[]) { // default configuration filename std::string configFilename = "test01.edl"; // parse arguments for (int i = 1; i < argc; i++) { if ( std::string(argv[i]) == "-f" ) { configFilename = argv[++i]; } } // build tester Tester* tester = builder(configFilename); // create the thread TimerThread* thread = createTheThread(tester); if (thread != nullptr) { // run the test run(tester); tester->event(oe::base::Component::SHUTDOWN_EVENT); tester->unref(); tester = nullptr; // stop the thread thread->terminate(); thread->unref(); thread = nullptr; } return 0; }
//------------------------------------------------------------------------------ // createTheThread() -- Create the data acq thread //------------------------------------------------------------------------------ TimerThread* createTheThread(Tester* const tester) { TimerThread* thread = new TimerThread(tester, THREAD_PRI, THREAD_RATE); bool ok = thread->create(); if (!ok) { thread = nullptr; std::cerr << "createTheThread(): ERROR, failed to create the thread!" << std::endl; } return thread; }
int main(int argc, const char *argv[]) { TimerThread t; t.setTimer(3,1); t.setTimerCallback(&func); t.startTimerThread(); sleep(10); t.cancelTimerThread(); return 0; }
int main(int argc, const char *argv[]) { TimerThread foo; foo.setTimer(3, 1); foo.setTimerCallback(&foobar); foo.startTimerThread(); sleep(10); foo.cancelTimerThread(); return 0; }
void STimer::AddTask( tick_t elapsed_ms, TaskExecute&& executer ) { if(_stop || !executer) { return; } auto self = shared_from_this(); _timer->AddTask( elapsed_ms, [=] { _mutex.lock(); if(!self->_stop) { executer(); } _mutex.unlock(); } ); }
int main(int argc, char* argv[]) { TimerThread tt; Timer* t = 0; #if 1 tt.addTimer(new Timer(3000, 10)); tt.addTimer(t = new Timer(4000)); tt.addTimer(t = new Timer(5000)); tt.addTimer(t = new Timer(6000)); tt.addTimer(t = new Timer(7000)); tt.addTimer(t = new Timer(8000)); tt.addTimer(t = new Timer(9000)); #endif #if 0 tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); tt.addTimer(t = new Timer(2000)); #endif //tt.delTimer(t); tt.start(); tt.join(); return 0; }