Diff for /rpl/src/fusible.c between versions 1.18 and 1.34

version 1.18, 2010/09/23 15:27:35 version 1.34, 2011/10/04 19:32:35
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.20    RPL/2 (R) version 4.1.4
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2011 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 45  fusible(void *argument) Line 45  fusible(void *argument)
     real8                   temps_cpu_precedent;      real8                   temps_cpu_precedent;
     real8                   temps_cpu_courant;      real8                   temps_cpu_courant;
   
     sigset_t                masque;  
   
     struct_processus        *s_etat_processus;      struct_processus        *s_etat_processus;
   
     struct rusage           s_rusage;      struct rusage           s_rusage;
Line 55  fusible(void *argument) Line 53  fusible(void *argument)
   
     s_etat_processus = argument;      s_etat_processus = argument;
   
     sigemptyset(&masque);  
     sigaddset(&masque, SIGINJECT);  
     sigaddset(&masque, SIGFSTOP);  
     sigaddset(&masque, SIGFABORT);  
     sigaddset(&masque, SIGURG);  
     sigaddset(&masque, SIGALRM);  
     sigaddset(&masque, SIGCONT);  
     sigaddset(&masque, SIGINT);  
     pthread_sigmask(SIG_BLOCK, &masque, NULL);  
   
     if ((*s_etat_processus).debug == d_vrai)      if ((*s_etat_processus).debug == d_vrai)
         if (((*s_etat_processus).type_debug &          if (((*s_etat_processus).type_debug &
                 d_debug_fusible) != 0)                  d_debug_fusible) != 0)
Line 87  fusible(void *argument) Line 75  fusible(void *argument)
     temporisation.tv_sec = 0;      temporisation.tv_sec = 0;
     temporisation.tv_nsec = 100000000; // un dixième de seconde      temporisation.tv_nsec = 100000000; // un dixième de seconde
   
       // Par défaut, le thread peut être annulé.
   
   #   ifdef PTHREAD_CANCEL_ENABLE
     pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);      pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
   #   endif
   
     getrusage(RUSAGE_SELF, &s_rusage);      getrusage(RUSAGE_SELF, &s_rusage);
     temps_cpu_courant = s_rusage.ru_utime.tv_sec +      temps_cpu_courant = s_rusage.ru_utime.tv_sec +
Line 110  fusible(void *argument) Line 102  fusible(void *argument)
         {          {
             (*s_etat_processus).temps_maximal_cpu = 0;              (*s_etat_processus).temps_maximal_cpu = 0;
   
             pthread_kill((*s_etat_processus).thread_surveille_par_fusible,              envoi_signal_thread((*s_etat_processus)
                     SIGFSTOP);                      .thread_surveille_par_fusible, rpl_sigstop);
             break;              break;
         }          }
     } while((*s_etat_processus).var_volatile_requete_arret == 0);      } while((*s_etat_processus).var_volatile_requete_arret == 0);

Removed from v.1.18  
changed lines
  Added in v.1.34


CVSweb interface <joel.bertrand@systella.fr>