void ProductionThread::do_next() { if(!init()) { emit bad_init(); return; } datapoolmutex.lock(); //Modifying datapool int elapsed; QTime t; t.start(); bool ex = m_videoAnalysis->execute(); elapsed = t.elapsed(); //std::cout << "Next elapsed time: " << elapsed << std::cout; datapoolmutex.unlock(); if(ex) emit load_data(); else emit bad_init(); }
void verif_nb_param(char **tab, int param) { int i; i = 0; while (tab[i] != 0) i++; if (param == 0 && i < 4) bad_init("REALLY ? WHY ARE U DOING THIS ? GO ASK FOR HELP\n"); else if (param == 1 && i < 4) bad_init("REALLY ? WHY ARE U DOING THIS ? GO ASK FOR HELP\n"); else if (param == 2 && i < 1) bad_init("REALLY ? WHY ARE U DOING THIS ? GO ASK FOR HELP\n"); else if (param == 3 && i < 1) bad_init("REALLY ? WHY ARE U DOING THIS ? GO ASK FOR HELP\n"); else if (param == 4 && i < 4) bad_init("REALLY ? WHY ARE U DOING THIS ? GO ASK FOR HELP\n"); else if (param == 5 && i < 4) bad_init("REALLY ? WHY ARE U DOING THIS ? GO ASK FOR HELP\n"); }
void ProductionThread::run(){ if(!init()) { emit bad_init(); return; } bool ex; pausemutex.lock(); //Initially paused paused = true; pausemutex.unlock(); waitmutex.lock(); waiting = false; // Not waiting for display update waitmutex.unlock(); forever { pausemutex.lock(); //If paused or next button it must stop if(paused) { pausemutex.unlock(); lockpausemutex.lock(); pauseCondition.wait(&lockpausemutex); lockpausemutex.unlock(); } else pausemutex.unlock(); waitmutex.lock(); //Control if it is waiting for printing results if(waiting) { waitmutex.unlock(); lockwaitmutex.lock(); waitCondition.wait(&lockwaitmutex); lockwaitmutex.unlock(); } else waitmutex.unlock(); donemutex.lock(); if(done) { donemutex.unlock(); break; } donemutex.unlock(); datapoolmutex.lock(); //Modifying datapool ex = m_videoAnalysis->execute(); datapoolmutex.unlock(); if(ex){ //If successful, execution will have to wait for data ready waitmutex.lock(); waiting = true; waitmutex.unlock(); emit load_data(); } else { pausemutex.lock(); paused = true; pausemutex.unlock(); emit bad_init(); } } }