--- rpl/src/gestion_objets.c 2015/09/18 13:41:10 1.123 +++ rpl/src/gestion_objets.c 2015/10/22 18:37:09 1.124 @@ -2858,6 +2858,13 @@ copie_etat_processus(struct_processus *s if ((s_nouvel_etat_processus = sys_malloc(sizeof(struct_processus))) == NULL) { + if (pthread_mutex_unlock(&((*s_etat_processus) + .mutex_pile_processus)) != 0) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return(NULL); + } + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; return(NULL); } @@ -3605,6 +3612,12 @@ copie_etat_processus(struct_processus *s &attributs_mutex); pthread_mutexattr_destroy(&attributs_mutex); + pthread_mutexattr_init(&attributs_mutex); + pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL); + pthread_mutex_init(&((*s_nouvel_etat_processus).protection_liste_mutexes), + &attributs_mutex); + pthread_mutexattr_destroy(&attributs_mutex); + if (pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus;