Diff for /rpl/src/gestion_variables_partagees.c between versions 1.45 and 1.46

version 1.45, 2013/03/20 17:11:44 version 1.46, 2013/03/23 16:14:39
Line 449  recherche_variable_partagee(struct_proce Line 449  recherche_variable_partagee(struct_proce
         {          {
             // Caractère hors de l'alphabet des variables              // Caractère hors de l'alphabet des variables
   
               pthread_mutex_unlock(&((*l_variable_courante).mutex_feuille));
             (*s_etat_processus).erreur_systeme = d_es_variable_introuvable;              (*s_etat_processus).erreur_systeme = d_es_variable_introuvable;
             return(NULL);              return(NULL);
         }          }
Line 456  recherche_variable_partagee(struct_proce Line 457  recherche_variable_partagee(struct_proce
         if ((*l_variable_courante).noeuds[pointeur] == NULL)          if ((*l_variable_courante).noeuds[pointeur] == NULL)
         {          {
             // Le chemin de la variable candidate n'existe pas.              // Le chemin de la variable candidate n'existe pas.
   
               pthread_mutex_unlock(&((*l_variable_courante).mutex_feuille));
             (*s_etat_processus).erreur_systeme = d_es_variable_introuvable;              (*s_etat_processus).erreur_systeme = d_es_variable_introuvable;
             return(NULL);              return(NULL);
         }          }
Line 463  recherche_variable_partagee(struct_proce Line 466  recherche_variable_partagee(struct_proce
         if (pthread_mutex_lock(&((*(*l_variable_courante).noeuds[pointeur])          if (pthread_mutex_lock(&((*(*l_variable_courante).noeuds[pointeur])
                 .mutex_feuille)) != 0)                  .mutex_feuille)) != 0)
         {          {
               pthread_mutex_unlock(&((*l_variable_courante).mutex_feuille));
             (*s_etat_processus).erreur_systeme = d_es_processus;              (*s_etat_processus).erreur_systeme = d_es_processus;
             return(NULL);              return(NULL);
         }          }
Line 479  recherche_variable_partagee(struct_proce Line 483  recherche_variable_partagee(struct_proce
   
     if ((*l_variable_courante).feuille != NULL)      if ((*l_variable_courante).feuille != NULL)
     {      {
         // Il existe au moins une variable statique du nom requis.          // Il existe au moins une variable partagée du nom requis.
   
         l_element_courant = (*l_variable_courante).feuille;          l_element_courant = (*l_variable_courante).feuille;
   
Line 656  retrait_variable_partagee(struct_process Line 660  retrait_variable_partagee(struct_process
         liberation(s_etat_processus, (*(*l_element_a_supprimer).variable)          liberation(s_etat_processus, (*(*l_element_a_supprimer).variable)
                 .objet);                  .objet);
         free((*(*l_element_a_supprimer).variable).nom);          free((*(*l_element_a_supprimer).variable).nom);
           pthread_mutex_unlock(&((*(*l_element_a_supprimer).variable).mutex));
           pthread_mutex_destroy(&((*(*l_element_a_supprimer).variable).mutex));
         free((*l_element_a_supprimer).variable);          free((*l_element_a_supprimer).variable);
         free(l_element_a_supprimer);          free(l_element_a_supprimer);
   

Removed from v.1.45  
changed lines
  Added in v.1.46


CVSweb interface <joel.bertrand@systella.fr>