void importDialog::on_btnImportar_clicked() { if(ui->btnImportar->text() != "Importar") { ui->btnImportar->setEnabled(false); switch (ui->stackedWidget->currentIndex()) { case 3: _createNewGroup(); break; case 4: case 5: ui->stackedWidget->setCurrentIndex(ui->stackedWidget->currentIndex()+1); ui->btnImportar->setEnabled(true); break; case 6: _getRelations(); break; default: ui->stackedWidget->setCurrentIndex(ui->stackedWidget->currentIndex()+1); break; } } else { QString s = _empDir+"/Fpago.dbf"; MainWindow* mainWin = new MainWindow(s); ui->btnImportar->setEnabled(false); importThread * Thread = new importThread(mainWin , this); Thread->setPath(_empDir); Thread->setPathConta(_contaDir); Thread->setIvaRelation(_ivas); Thread->setPaisRelation(_paises); Thread->setMonedaPais(_MonedaPais); connect(Thread,SIGNAL(finished()),Thread,SLOT(deleteLater())); connect(Thread,SIGNAL(finished()),this,SLOT(reEnableImportar())); connect(Thread,SIGNAL(Error(QString)),this,SLOT(threadError(QString))); progressDialog * d = new progressDialog (this); d->setModal(true); connect(Thread,SIGNAL(Error(QString)),d,SLOT(error(QString))); connect(Thread,SIGNAL(Progress(QString,int)),d,SLOT(Progress(QString,int))); connect(Thread,SIGNAL(sizeOfTask(int)),d,SLOT(sizeOfTask(int))); connect(Thread,SIGNAL(finished()),d,SLOT(end())); connect(d,SIGNAL(stop()),Thread,SLOT(stopMe())); d->show(); Thread->setEmpresa(_empresaFp); Thread->setDivisas(_divisas); Thread->start(); } }
int main() { struct philosopher_t *p0_t, *p1_t, *p2_t, *p3_t, *p4_t; p0_t = malloc(sizeof(struct philosopher_t)); p1_t = malloc(sizeof(struct philosopher_t)); p2_t = malloc(sizeof(struct philosopher_t)); p3_t = malloc(sizeof(struct philosopher_t)); p4_t = malloc(sizeof(struct philosopher_t)); p0_t->nr = 0; p0_t->left = 0; p0_t->right = 1; p1_t->nr = 1; p1_t->left = 1; p1_t->right = 2; p2_t->nr = 2; p2_t->left = 2; p2_t->right = 3; p3_t->nr = 3; p3_t->left = 3; p3_t->right = 4; p4_t->nr = 4; p4_t->left = 4; p4_t->right = 0; if (pthread_create(&philosopher[p0_t->nr], NULL, philosopher_deadlock, p0_t)) { threadError("Error while creating philosopher %d\n", p0_t->nr); } if (pthread_create(&philosopher[p1_t->nr], NULL, philosopher_deadlock, p1_t)) { threadError("Error while creating philosopher %d\n", p1_t->nr); } if (pthread_create(&philosopher[p2_t->nr], NULL, philosopher_deadlock, p2_t)) { threadError("Error while creating philosopher %d\n", p2_t->nr); } if (pthread_create(&philosopher[p3_t->nr], NULL, philosopher_deadlock, p3_t)) { threadError("Error while creating philosopher %d\n", p4_t->nr); } if (pthread_create(&philosopher[p4_t->nr], NULL, philosopher_deadlock, p4_t)) { threadError("Error while creating philosopher %d\n", p4_t->nr); } if (pthread_join(philosopher[p0_t->nr], NULL)) { threadError("Error while ending philosopher %d\n", p0_t->nr); } if (pthread_join(philosopher[p1_t->nr], NULL)) { threadError("Error while ending philosopher %d\n", p1_t->nr); } if (pthread_join(philosopher[p2_t->nr], NULL)) { threadError("Error while ending philosopher %d\n", p2_t->nr); } if (pthread_join(philosopher[p3_t->nr], NULL)) { threadError("Error while ending philosopher %d\n", p3_t->nr); } if (pthread_join(philosopher[p4_t->nr], NULL)) { threadError("Error while ending philosopher %d\n", p4_t->nr); } return 0; }
void SnpBuffer::update(int posStart, int posEnd, int bins, int trackMin, int trackMax, bool synteny, bool light, int gaps) { if ( ! alignment ) { return; } if ( updating ) { //if ( posStart != snpDataNew->getPosStart() || posEnd != snpDataNew->getPosEnd() ) { //printf("queuing:\t%d\t[%d -\t%d]\t%s\n", bins, posStart, posEnd, synteny ? "syn" : "snp"); posStartQueue = posStart; posEndQueue = posEnd; binsQueue = bins; trackMinQueue = trackMin; trackMaxQueue = trackMax; syntenyQueue = synteny; lightQueue = light; gapsQueue = gaps; updateNeeded = true; } return; } //printf("updating:\t%d\t[%d -\t%d]\t%s\n", bins, posStart, posEnd, synteny ? "syn" : "snp"); if ( posEnd < 0 ) { return; } if ( snpDataNew == 0 || snpDataNew->getBins() != bins ) { // reallocate if ( snpDataNew != 0 ) { delete snpDataNew; } snpDataNew = new SnpData(bins, trackCount); } snpDataNew->setWindow(posStart, posEnd); snpDataNew->setTracks(trackMin, trackMax); snpDataNew->setSynteny(synteny); snpDataNew->setLightColors(light); snpDataNew->setShowGaps(gaps); snpDataNew->setFilters ( alignment->getFilters(), alignment->getFiltersScale(), alignment->getFilterPass(), alignment->getFilterPassScale() ); int radius = (posEnd - posStart + 1) / bins / 6 - 1; if ( radius > 3 ) { radius = 3; } if ( radius < 0 ) { radius = 0; } bool async = true; SnpWorker* worker = new SnpWorker ( alignment, snpDataNew, idByTrack, mutex, radius, light ? snpPaletteLight : snpPaletteDark, &syntenyPalette ); if ( async ) { thread = new QThread; worker->moveToThread(thread); connect(worker, SIGNAL(error(QString)), this, SLOT(threadError(QString))); connect(thread, SIGNAL(started()), worker, SLOT(process())); connect(worker, SIGNAL(finished()), thread, SLOT(quit())); connect(worker, SIGNAL(finished()), worker, SLOT(deleteLater())); connect(worker, SIGNAL(finished()), this, SLOT(updateFinished())); connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater())); thread->start(); /* worker->moveToThread(thread); //connect(worker, SIGNAL(error(QString)), this, SLOT(threadError(QString))); connect(thread, SIGNAL(started()), worker, SLOT(process())); connect(worker, SIGNAL(finished()), thread, SLOT(quit())); connect(worker, SIGNAL(finished()), this, SLOT(updateFinished())); connect(worker, SIGNAL(finished()), worker, SLOT(deleteLater())); connect(worker, SIGNAL(finished()), thread, SLOT(deleteLater())); thread->start(); */ updating = true; updateNeeded = false; } else { worker->process(); updating = true; updateNeeded = false; updateFinished(); delete worker; } }