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

version 1.110, 2012/12/13 16:59:42 version 1.116, 2013/02/23 18:32:15
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.11    RPL/2 (R) version 4.1.12
   Copyright (C) 1989-2012 Dr. BERTRAND Joël    Copyright (C) 1989-2012 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 81  thread_surveillance_signaux(void *argume Line 81  thread_surveillance_signaux(void *argume
   
     volatile struct_liste_chainee_volatile  *l_element_courant;      volatile struct_liste_chainee_volatile  *l_element_courant;
   
       sigset_t                                set;
   
       sigfillset(&set);
       pthread_sigmask(SIG_BLOCK, &set, NULL);
   
     s_etat_processus = (struct_processus *) argument;      s_etat_processus = (struct_processus *) argument;
   
     for(;;)      for(;;)
Line 94  thread_surveillance_signaux(void *argume Line 99  thread_surveillance_signaux(void *argume
         if (sem_wait(semaphore_signalisation) == 0)          if (sem_wait(semaphore_signalisation) == 0)
 #       endif  #       endif
         {          {
             if ((*s_queue_signaux).requete_arret == d_vrai)  
             {  
                 break;  
             }  
   
 #           if (!defined(SEMAPHORES_NOMMES)) || defined(IPCS_SYSV)  #           if (!defined(SEMAPHORES_NOMMES)) || defined(IPCS_SYSV)
             sem_post(&(*s_queue_signaux).signalisation);              sem_post(&(*s_queue_signaux).signalisation);
 #           else  #           else
             sem_post(semaphore_signalisation);              sem_post(semaphore_signalisation);
 #           endif  #           endif
   
               if ((*s_queue_signaux).requete_arret == d_vrai)
               {
                   break;
               }
   
             nombre_signaux_envoyes = 0;              nombre_signaux_envoyes = 0;
             sched_yield();              sched_yield();
   
Line 544  liberation_threads(struct_processus *s_e Line 549  liberation_threads(struct_processus *s_e
   
     struct_processus                            *candidat;      struct_processus                            *candidat;
   
       struct_liste_variables_partagees            *l_element_partage_courant;
       struct_liste_variables_partagees            *l_element_partage_suivant;
   
       struct_liste_variables_statiques            *l_element_statique_courant;
       struct_liste_variables_statiques            *l_element_statique_suivant;
   
     unsigned long                               i;      unsigned long                               i;
   
     void                                        *element_candidat;      void                                        *element_candidat;
Line 765  liberation_threads(struct_processus *s_e Line 776  liberation_threads(struct_processus *s_e
                 suppression_variables_partagees = d_vrai;                  suppression_variables_partagees = d_vrai;
   
                 liberation_arbre_variables_partagees(s_etat_processus,                  liberation_arbre_variables_partagees(s_etat_processus,
                         (*s_etat_processus).s_arbre_variables);                          (*(*s_etat_processus).s_arbre_variables_partagees));
   
                   l_element_partage_courant = (*(*s_etat_processus)
                           .l_liste_variables_partagees);
   
                   while(l_element_partage_courant != NULL)
                   {
                       l_element_partage_suivant =
                               (*l_element_partage_courant).suivant;
                       free(l_element_partage_courant);
                       l_element_partage_courant = l_element_partage_suivant;
                   }
             }              }
   
             liberation_arbre_variables(s_etat_processus,              liberation_arbre_variables(s_etat_processus,
                     (*s_etat_processus).s_arbre_variables, d_faux);                      (*s_etat_processus).s_arbre_variables, d_faux);
   
               l_element_statique_courant = (*s_etat_processus)
                       .l_liste_variables_statiques;
   
               while(l_element_statique_courant != NULL)
               {
                   l_element_statique_suivant =
                       (*l_element_statique_courant).suivant;
                   free(l_element_statique_courant);
                   l_element_statique_courant = l_element_statique_suivant;
               }
   
             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.110  
changed lines
  Added in v.1.116


CVSweb interface <joel.bertrand@systella.fr>