Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void cleanup(int sig)
- {
- //signal(SIGINT, cleanup);
- // Envia o sinal SIGKILL a todos os processos filho e espera que terminem
- printf("\n->Clean and finish\n");
- int i = 0;
- unlink(myfifo);
- while (i < (n_processos)){
- kill(process[i++], SIGKILL);
- }
- while (wait(NULL) != -1) ;//esperar pelos processos
- // Elimina os semáforos
- sem_close(mutex);
- sem_unlink("MUTEX");
- sem_close(mutex2);
- sem_unlink("MUTEX2");
- //if (semid >= 0)
- // semctl(semid, 0, IPC_RMID);
- //sem_close(sem_config);
- //pthread_kill(thread_pipe[0],NULL);
- // Elimina a memória partilhada
- if (shm_config_id >= 0){
- shmdt((int*)shm_config_id);
- shmctl(shm_config_id, IPC_RMID, NULL);
- }
- if (shm_check_id >= 0){
- shmdt((int*)shm_check_id);
- shmctl(shm_check_id, IPC_RMID,NULL);
- }
- //free(info_estatisticas);
- //free(recebe);
- exit(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement