Diff for /rpl/src/gestion_variables.c between versions 1.71 and 1.73

version 1.71, 2013/03/22 15:31:19 version 1.73, 2013/03/24 13:42:44
Line 1863  nombre_variables_partagees(struct_proces Line 1863  nombre_variables_partagees(struct_proces
         return(0);          return(0);
     }      }
   
       // Mutex deverrouillé par liste_variables_partagees();
     if (pthread_mutex_lock(&((*l_element_courant).mutex_feuille)) != 0)      if (pthread_mutex_lock(&((*l_element_courant).mutex_feuille)) != 0)
     {      {
         (*s_etat_processus).erreur_systeme = d_es_processus;          (*s_etat_processus).erreur_systeme = d_es_processus;
Line 1953  liste_variables_locales(struct_processus Line 1954  liste_variables_locales(struct_processus
   
     if (l_element_courant == NULL)      if (l_element_courant == NULL)
     {      {
         return(0);          return(position);
     }      }
   
     if ((*l_element_courant).feuille != NULL)      if ((*l_element_courant).feuille != NULL)
Line 1973  liste_variables_locales(struct_processus Line 1974  liste_variables_locales(struct_processus
             tableau[position].variable_partagee =              tableau[position].variable_partagee =
                     (*(*l_variable).variable).variable_partagee;                      (*(*l_variable).variable).variable_partagee;
             tableau[position].variable_masquee = d_faux;              tableau[position].variable_masquee = d_faux;
               tableau[position].mutex = NULL;
   
             position++;              position++;
   
             l_variable = (*l_variable).suivant;              l_variable = (*l_variable).suivant;
         } while(l_variable != (*l_element_courant).feuille);          } while(l_variable != (*l_element_courant).feuille);
     }      }
Line 1991  liste_variables_locales(struct_processus Line 1994  liste_variables_locales(struct_processus
                 tableau[position].nom = (*(*l_variable_statique).variable).nom;                  tableau[position].nom = (*(*l_variable_statique).variable).nom;
                 tableau[position].niveau =                  tableau[position].niveau =
                         (*(*l_variable_statique).variable).niveau;                          (*(*l_variable_statique).variable).niveau;
                 tableau[position].objet =                  tableau[position].objet = (*(*l_variable_statique).variable)
                         (*(*l_variable_statique).variable).objet;                          .objet;
                 tableau[position].variable_verrouillee = d_faux;                  tableau[position].variable_verrouillee = d_faux;
                 tableau[position].variable_statique =                  tableau[position].variable_statique =
                         (*(*l_variable_statique).variable).variable_statique;                          (*(*l_variable_statique).variable).variable_statique;
Line 2030  liste_variables_partagees(struct_process Line 2033  liste_variables_partagees(struct_process
   
     if (l_element_courant == NULL)      if (l_element_courant == NULL)
     {      {
         return(0);          return(position);
     }      }
   
     // mutex_liste_variables_partagees  
     // et (*l_variable_courante).mutex_feuille  
     if ((*l_element_courant).feuille != NULL)      if ((*l_element_courant).feuille != NULL)
     {      {
         l_variable = (*l_element_courant).feuille;          l_variable = (*l_element_courant).feuille;
Line 2048  liste_variables_partagees(struct_process Line 2049  liste_variables_partagees(struct_process
             tableau[position].variable_verrouillee = d_faux;              tableau[position].variable_verrouillee = d_faux;
             tableau[position].variable_partagee =              tableau[position].variable_partagee =
                     (*(*l_variable).variable).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].variable_masquee = d_faux;
               tableau[position].mutex = &((*(*l_variable).variable).mutex);
               pthread_mutex_lock(tableau[position].mutex);
   
             position++;              position++;
   
Line 2066  liste_variables_partagees(struct_process Line 2069  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;
           return(0);
       }
   
     return(position);      return(position);
 }  }
   
Line 2102  liste_variables(struct_processus *s_etat Line 2112  liste_variables(struct_processus *s_etat
   
     nombre_elements = liste_variables_locales(s_etat_processus,      nombre_elements = liste_variables_locales(s_etat_processus,
             tableau, 0, (*s_etat_processus).s_arbre_variables);              tableau, 0, (*s_etat_processus).s_arbre_variables);
     nombre_elements += liste_variables_partagees(s_etat_processus,      nombre_elements = liste_variables_partagees(s_etat_processus,
             tableau, nombre_elements, (*(*s_etat_processus)              tableau, nombre_elements, (*(*s_etat_processus)
             .s_arbre_variables_partagees));              .s_arbre_variables_partagees));
   

Removed from v.1.71  
changed lines
  Added in v.1.73


CVSweb interface <joel.bertrand@systella.fr>