Diff for /rpl/src/interruptions.c between versions 1.108 and 1.110

version 1.108, 2012/10/17 10:23:16 version 1.110, 2012/12/13 16:59:42
Line 91  thread_surveillance_signaux(void *argume Line 91  thread_surveillance_signaux(void *argume
 #       if (!defined(SEMAPHORES_NOMMES)) || defined(IPCS_SYSV)  #       if (!defined(SEMAPHORES_NOMMES)) || defined(IPCS_SYSV)
         if (sem_wait(&(*s_queue_signaux).signalisation) == 0)          if (sem_wait(&(*s_queue_signaux).signalisation) == 0)
 #       else  #       else
         if(sem_wait(semaphore_signalisation) == 0)          if (sem_wait(semaphore_signalisation) == 0)
 #       endif  #       endif
         {          {
             if ((*s_queue_signaux).requete_arret == d_vrai)              if ((*s_queue_signaux).requete_arret == d_vrai)
Line 759  liberation_threads(struct_processus *s_e Line 759  liberation_threads(struct_processus *s_e
                 }                  }
             }              }
   
             liberation_arbre_variables(s_etat_processus,              // ne peut être effacé qu'une seule fois
                     (*s_etat_processus).s_arbre_variables, d_faux);  
   
             // Ne peut être effacé qu'une seule fois  
             if (suppression_variables_partagees == d_faux)              if (suppression_variables_partagees == d_faux)
             {              {
                 suppression_variables_partagees = d_vrai;                  suppression_variables_partagees = d_vrai;
   
                 for(i = 0; i < (*(*s_etat_processus)                  liberation_arbre_variables_partagees(s_etat_processus,
                         .s_liste_variables_partagees).nombre_variables; i++)                          (*s_etat_processus).s_arbre_variables);
                 {  
                     pthread_mutex_trylock(&((*(*(*s_etat_processus)  
                             .s_liste_variables_partagees).table[i].objet)  
                             .mutex));  
                     pthread_mutex_unlock(&((*(*(*s_etat_processus)  
                             .s_liste_variables_partagees).table[i].objet)  
                             .mutex));  
   
                     liberation(s_etat_processus, (*(*s_etat_processus)  
                             .s_liste_variables_partagees).table[i].objet);  
                     free((*(*s_etat_processus).s_liste_variables_partagees)  
                             .table[i].nom);  
                 }  
   
                 if ((*(*s_etat_processus).s_liste_variables_partagees).table  
                         != NULL)  
                 {  
                     free((struct_variable_partagee *) (*(*s_etat_processus)  
                             .s_liste_variables_partagees).table);  
                 }  
   
                 pthread_mutex_trylock(&((*(*s_etat_processus)  
                         .s_liste_variables_partagees).mutex));  
                 pthread_mutex_unlock(&((*(*s_etat_processus)  
                         .s_liste_variables_partagees).mutex));  
             }              }
   
               liberation_arbre_variables(s_etat_processus,
                       (*s_etat_processus).s_arbre_variables, d_faux);
   
             element_courant = (*s_etat_processus).l_base_pile;              element_courant = (*s_etat_processus).l_base_pile;
             while(element_courant != NULL)              while(element_courant != NULL)
             {              {

Removed from v.1.108  
changed lines
  Added in v.1.110


CVSweb interface <joel.bertrand@systella.fr>