Пример #1
0
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();

}
Пример #2
0
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");
}
Пример #3
0
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();
        }

    }
}