Advertisement
Guest User

Untitled

a guest
Dec 7th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. void *flight_worker(void *id) {
  2. MQ msgS,msgR;
  3. int i = *(int *) id;
  4. char *msg;
  5. asprintf(&msg, "FLIGHT THREAD %d CREATED",i);
  6. logF(msg);
  7. for(int j=0; j<(config_ptr->A+config_ptr->D);j++){
  8. if(preflights_ptr[j].flight_code == i){
  9. msgS.fly = preflights_ptr[j];
  10. msgS.type = 1;
  11. msgsnd(mqid, &msgS, sizeof(msgS)-sizeof(long), 0);
  12. break;
  13. }
  14. }
  15.  
  16. msgrcv(mqid,&msgR,sizeof(MQ)-sizeof(long),i,0);
  17. printf("flight_worker-> fc:%d\n", depflights_ptr[msgR.address].flight_code);
  18. if(msgR.address == -1) {
  19. logF("REJECTED AIRPLANE BY QUEUE LIMIT EXCEDED");
  20. pthread_exit(NULL);
  21. pthread_join(flight_thread[i], NULL);
  22. return NULL;
  23. }
  24. else if(msgR.fly.takeoff != -1){ //DEPARTURES
  25. //Waiting for cond var to departure
  26.  
  27. }
  28. else if(msgR.fly.eta != -1) { //ARRIVALS
  29. //Waiting for cond var to arrival
  30.  
  31.  
  32. //Holding Maneuver
  33. }
  34.  
  35.  
  36. printf("A thread %d vai fechar...\n",i);
  37. pthread_exit(NULL);
  38. return NULL;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement