--- rpl/src/instructions_d5.c 2016/03/15 16:31:15 1.142 +++ rpl/src/instructions_d5.c 2016/03/16 11:10:47 1.143 @@ -2821,13 +2821,6 @@ instruction_detach(struct_processus *s_e retrait_thread(s_etat_processus); - pthread_mutex_destroy(&((*s_etat_processus).mutex_pile_processus)); - pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation)); - pthread_mutex_destroy(&((*s_etat_processus).mutex_interruptions)); - pthread_mutex_destroy(&((*s_etat_processus).mutex_signaux)); - pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes)); - pthread_mutex_destroy(&mutex_sections_critiques); - # ifndef SEMAPHORES_NOMMES sem_post(&((*s_etat_processus).semaphore_fork)); sem_destroy(&((*s_etat_processus).semaphore_fork)); @@ -2844,11 +2837,19 @@ instruction_detach(struct_processus *s_e liberation_allocateur(s_etat_processus); liberation_allocateur_buffer(s_etat_processus); - pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation_buffer)); free((*s_etat_processus).localisation); free((*s_etat_processus).chemin_fichiers_temporaires); free(s_argument_thread); + + pthread_mutex_destroy(&((*s_etat_processus).mutex_pile_processus)); + pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation)); + pthread_mutex_destroy(&((*s_etat_processus).mutex_interruptions)); + pthread_mutex_destroy(&((*s_etat_processus).mutex_signaux)); + pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes)); + pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation_buffer)); + pthread_mutex_destroy(&mutex_sections_critiques); + sys_free(s_etat_processus); # ifdef DEBUG_MEMOIRE