Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void *flight_worker(void *id) {
- MQ msgS,msgR;
- int i = *(int *) id;
- char *msg;
- asprintf(&msg, "FLIGHT THREAD %d CREATED",i);
- logF(msg);
- for(int j=0; j<(config_ptr->A+config_ptr->D);j++){
- if(preflights_ptr[j].flight_code == i){
- msgS.fly = preflights_ptr[j];
- msgS.type = 1;
- msgsnd(mqid, &msgS, sizeof(msgS)-sizeof(long), 0);
- break;
- }
- }
- msgrcv(mqid,&msgR,sizeof(MQ)-sizeof(long),i,0);
- printf("flight_worker-> fc:%d\n", depflights_ptr[msgR.address].flight_code);
- if(msgR.address == -1) {
- logF("REJECTED AIRPLANE BY QUEUE LIMIT EXCEDED");
- pthread_exit(NULL);
- pthread_join(flight_thread[i], NULL);
- return NULL;
- }
- else if(msgR.fly.takeoff != -1){ //DEPARTURES
- //Waiting for cond var to departure
- }
- else if(msgR.fly.eta != -1) { //ARRIVALS
- //Waiting for cond var to arrival
- //Holding Maneuver
- }
- printf("A thread %d vai fechar...\n",i);
- pthread_exit(NULL);
- return NULL;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement