Advertisement
Guest User

Untitled

a guest
Nov 25th, 2015
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. void cleanup(int sig)
  2.  
  3. {
  4.  
  5. //signal(SIGINT, cleanup);
  6.  
  7. // Envia o sinal SIGKILL a todos os processos filho e espera que terminem
  8.  
  9.  
  10.  
  11. printf("\n->Clean and finish\n");
  12.  
  13. int i = 0;
  14.  
  15. unlink(myfifo);
  16.  
  17. while (i < (n_processos)){
  18.  
  19. kill(process[i++], SIGKILL);
  20.  
  21. }
  22.  
  23.  
  24.  
  25. while (wait(NULL) != -1) ;//esperar pelos processos
  26.  
  27. // Elimina os semáforos
  28.  
  29. sem_close(mutex);
  30.  
  31. sem_unlink("MUTEX");
  32.  
  33. sem_close(mutex2);
  34.  
  35. sem_unlink("MUTEX2");
  36.  
  37. //if (semid >= 0)
  38.  
  39. // semctl(semid, 0, IPC_RMID);
  40.  
  41. //sem_close(sem_config);
  42.  
  43. //pthread_kill(thread_pipe[0],NULL);
  44.  
  45. // Elimina a memória partilhada
  46.  
  47. if (shm_config_id >= 0){
  48.  
  49. shmdt((int*)shm_config_id);
  50.  
  51. shmctl(shm_config_id, IPC_RMID, NULL);
  52.  
  53. }
  54.  
  55. if (shm_check_id >= 0){
  56.  
  57. shmdt((int*)shm_check_id);
  58.  
  59. shmctl(shm_check_id, IPC_RMID,NULL);
  60.  
  61. }
  62.  
  63.  
  64.  
  65. //free(info_estatisticas);
  66.  
  67. //free(recebe);
  68.  
  69. exit(0);
  70.  
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement