Diff for /rpl/src/instructions_d5.c between versions 1.166 and 1.168

version 1.166, 2019/02/06 14:23:26 version 1.168, 2019/02/11 06:18:20
Line 2243  instruction_detach(struct_processus *s_e Line 2243  instruction_detach(struct_processus *s_e
                 {                  {
                     if ((*s_etat_processus).var_volatile_alarme != 0)                      if ((*s_etat_processus).var_volatile_alarme != 0)
                     {                      {
                         envoi_signal_thread((*(*((struct_processus_fils *)                          envoi_signal_thread(s_etat_processus,
                                   (*(*((struct_processus_fils *)
                                 (*(*l_element_courant).donnee).objet)).thread)                                  (*(*l_element_courant).donnee).objet)).thread)
                                 .tid, rpl_sigurg);                                  .tid, rpl_sigurg);
                     }                      }
Line 2251  instruction_detach(struct_processus *s_e Line 2252  instruction_detach(struct_processus *s_e
                     {                      {
                         if ((*s_etat_processus).arret_depuis_abort == -1)                          if ((*s_etat_processus).arret_depuis_abort == -1)
                         {                          {
                             envoi_signal_thread((*(*((struct_processus_fils *)                              envoi_signal_thread(s_etat_processus,
                                       (*(*((struct_processus_fils *)
                                     (*(*l_element_courant).donnee).objet))                                      (*(*l_element_courant).donnee).objet))
                                     .thread).tid, rpl_sigabort);                                      .thread).tid, rpl_sigabort);
                         }                          }
                         else                          else
                         {                          {
                             envoi_signal_thread((*(*((struct_processus_fils *)                              envoi_signal_thread(s_etat_processus,
                                       (*(*((struct_processus_fils *)
                                     (*(*l_element_courant).donnee).objet))                                      (*(*l_element_courant).donnee).objet))
                                     .thread).tid, rpl_sigstop);                                      .thread).tid, rpl_sigstop);
                         }                          }
Line 2304  instruction_detach(struct_processus *s_e Line 2307  instruction_detach(struct_processus *s_e
                             .donnee).objet)).thread).nombre_objets_dans_pipe--;                              .donnee).objet)).thread).nombre_objets_dans_pipe--;
   
                     action.sa_handler = SIG_IGN;                      action.sa_handler = SIG_IGN;
                     action.sa_flags = SA_ONSTACK;                      action.sa_flags = 0;
   
                     if (sigaction(SIGPIPE, &action, &registre) != 0)                      if (sigaction(SIGPIPE, &action, &registre) != 0)
                     {                      {
Line 2724  instruction_detach(struct_processus *s_e Line 2727  instruction_detach(struct_processus *s_e
         attente.tv_sec = 0;          attente.tv_sec = 0;
         attente.tv_nsec = GRANULARITE_us * 1000;          attente.tv_nsec = GRANULARITE_us * 1000;
   
           pthread_mutex_lock(&((*s_etat_processus).mutex_pile_processus));
   
         while(nombre_thread_surveillance_processus != 0)          while(nombre_thread_surveillance_processus != 0)
         {          {
               pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus));
             nanosleep(&attente, NULL);              nanosleep(&attente, NULL);
             INCR_GRANULARITE(attente.tv_nsec);              INCR_GRANULARITE(attente.tv_nsec);
               pthread_mutex_lock(&((*s_etat_processus).mutex_pile_processus));
         }          }
   
           pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus));
   
         closelog();          closelog();
   
         retrait_thread(s_etat_processus);          retrait_thread(s_etat_processus);

Removed from v.1.166  
changed lines
  Added in v.1.168


CVSweb interface <joel.bertrand@systella.fr>