void QGeoCodeReplyNokia::networkFinished() { if (!m_reply) return; if (m_reply->error() != QNetworkReply::NoError) return; QGeoCodeXmlParser *parser = new QGeoCodeXmlParser; parser->setBounds(viewport()); connect(parser, SIGNAL(results(QList<QGeoLocation>)), this, SLOT(appendResults(QList<QGeoLocation>))); connect(parser, SIGNAL(error(QString)), this, SLOT(parseError(QString))); m_parsing = true; parser->parse(m_reply->readAll()); m_reply->deleteLater(); m_reply = 0; }
void main(int argc,char* argv[]) { int DPP; float probability = 0.2; if(argc!=3) { printf("Please run the program with 2 arguments : <DPP_toggle (0 or 1)> <probability> \n"); // DPP --> Deadlock Prevention Protocol exit(1); } else { sscanf(argv[1],"%d",&DPP); sscanf(argv[2],"%f",&probability); if((DPP != 0 && DPP != 1)||(probability<0 || probability >1)) { printf("Please run the program with valid arguments : <DPP_toggle (0 or 1)> <probability>\n"); // DPP --> Deadlock Prevention Protocol exit(1); } } semID = semget((key_t)SEMAPHORE_KEY,7,IPC_CREAT|0666); initializeAllSubSemaphoreValues(); acquireMutexLock(MATRIX_MUTEX); initializeMatrixFile(); releaseMutexLock(MATRIX_MUTEX); int mssgQ0_ID=msgget((key_t)MSSG_Q0_KEY,IPC_CREAT|0666); int mssgQ1_ID=msgget((key_t)MSSG_Q1_KEY,IPC_CREAT|0666); int i; for(i=0;i<NUM_PRODUCERS;i++) { char command[50]; sprintf(command,"xterm -hold -e ./producer %d %d %d &",MSSG_Q0_KEY,MSSG_Q1_KEY,i); system(command); sleep(1); // otherwise the item to be first inserted becomes the same for all the Queues due to the timeseeding : srand(time(NULL)) } for(i=0;i<NUM_CONSUMERS;i++) { char command[50]; sprintf(command,"xterm -hold -e ./consumer %d %d %d %f %d &",MSSG_Q0_KEY,MSSG_Q1_KEY,NUM_PRODUCERS+i,probability,DPP); system(command); } while(1) { int m,n; // if Deadlock is found, then Consumer m (Cm) and Consumer n (Cn) are such that Q0 --> Cm --> Q1 --> Cn --> Q0, in the Resource Allocation Graph int found_deadlock = 0; printf("Checking for Deadlock...\n"); acquireMutexLock(MATRIX_MUTEX); found_deadlock = checkForDeadlock(&m,&n); releaseMutexLock(MATRIX_MUTEX); if(found_deadlock) { printf("\n\nDeadlock !!!\n\nDeadlocked Cycle : Q0 --> C%d --> Q1 --> C%d --> Q0 \n\nKilling all Processes...",m,n); printf("\n\nPress a key to kill all Processes\n"); getch(); killAllProcesses(); appendResults(probability); exit(0); } sleep(2); } }