--- rpl/src/gestion_variables.c 2013/03/23 16:14:39 1.72 +++ rpl/src/gestion_variables.c 2013/03/24 13:42:44 1.73 @@ -1863,6 +1863,7 @@ nombre_variables_partagees(struct_proces return(0); } + // Mutex deverrouillé par liste_variables_partagees(); if (pthread_mutex_lock(&((*l_element_courant).mutex_feuille)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; @@ -2035,8 +2036,6 @@ liste_variables_partagees(struct_process return(position); } - // mutex_liste_variables_partagees - // et (*l_variable_courante).mutex_feuille if ((*l_element_courant).feuille != NULL) { l_variable = (*l_element_courant).feuille; @@ -2050,9 +2049,10 @@ liste_variables_partagees(struct_process tableau[position].variable_verrouillee = d_faux; tableau[position].variable_partagee = (*(*l_variable).variable).variable_partagee; - tableau[position].variable_partagee.pointeur = NULL; + tableau[position].variable_statique.pointeur = NULL; tableau[position].variable_masquee = d_faux; tableau[position].mutex = &((*(*l_variable).variable).mutex); + pthread_mutex_lock(tableau[position].mutex); position++; @@ -2069,6 +2069,7 @@ liste_variables_partagees(struct_process } } + // Mutex verrouillé par nombre_variables_partagees(); if (pthread_mutex_unlock(&((*l_element_courant).mutex_feuille)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus;