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

version 1.168, 2019/02/11 06:18:20 version 1.169, 2019/02/11 09:45:49
Line 1306  instruction_detach(struct_processus *s_e Line 1306  instruction_detach(struct_processus *s_e
         pthread_mutexattr_destroy(&attributs_mutex);          pthread_mutexattr_destroy(&attributs_mutex);
   
         pthread_mutexattr_init(&attributs_mutex);          pthread_mutexattr_init(&attributs_mutex);
           pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_RECURSIVE);
           pthread_mutex_init(&mutex_sigaction, &attributs_mutex);
           pthread_mutexattr_destroy(&attributs_mutex);
   
           pthread_mutexattr_init(&attributs_mutex);
         pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL);          pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL);
         pthread_mutex_init(&((*s_etat_processus).mutex_pile_processus),          pthread_mutex_init(&((*s_etat_processus).mutex_pile_processus),
                 &attributs_mutex);                  &attributs_mutex);
Line 2306  instruction_detach(struct_processus *s_e Line 2311  instruction_detach(struct_processus *s_e
                     (*(*((struct_processus_fils *) (*(*l_element_courant)                      (*(*((struct_processus_fils *) (*(*l_element_courant)
                             .donnee).objet)).thread).nombre_objets_dans_pipe--;                              .donnee).objet)).thread).nombre_objets_dans_pipe--;
   
                       if (pthread_mutex_lock(&mutex_sigaction) != 0)
                       {
                           destruction_queue_signaux(s_etat_processus);
                           (*s_etat_processus).erreur_systeme = d_es_processus;
                           exit(EXIT_FAILURE);
                       }
   
                     action.sa_handler = SIG_IGN;                      action.sa_handler = SIG_IGN;
                     action.sa_flags = 0;                      action.sa_flags = 0;
   
Line 2313  instruction_detach(struct_processus *s_e Line 2325  instruction_detach(struct_processus *s_e
                     {                      {
                         pthread_mutex_unlock(&((*s_etat_processus)                          pthread_mutex_unlock(&((*s_etat_processus)
                                 .mutex_pile_processus));                                  .mutex_pile_processus));
                           pthread_mutex_unlock(&mutex_sigaction);
   
                         if (registre_stop == 0)                          if (registre_stop == 0)
                         {                          {
Line 2366  instruction_detach(struct_processus *s_e Line 2379  instruction_detach(struct_processus *s_e
                     {                      {
                         destruction_queue_signaux(s_etat_processus);                          destruction_queue_signaux(s_etat_processus);
   
                           pthread_mutex_unlock(&mutex_sigaction);
                         pthread_mutex_unlock(&((*s_etat_processus)                          pthread_mutex_unlock(&((*s_etat_processus)
                                 .mutex_pile_processus));                                  .mutex_pile_processus));
                         (*s_etat_processus).erreur_systeme = d_es_signal;                          (*s_etat_processus).erreur_systeme = d_es_signal;
                         exit(EXIT_FAILURE);                          exit(EXIT_FAILURE);
                     }                      }
   
                       if (pthread_mutex_unlock(&mutex_sigaction) != 0)
                       {
                           destruction_queue_signaux(s_etat_processus);
                           pthread_mutex_unlock(&((*s_etat_processus)
                                   .mutex_pile_processus));
                           (*s_etat_processus).erreur_systeme = d_es_processus;
                           exit(EXIT_FAILURE);
                       }
                 }                  }
             }              }
   
Line 2806  instruction_detach(struct_processus *s_e Line 2829  instruction_detach(struct_processus *s_e
         analyse_post_mortem();          analyse_post_mortem();
 #       endif  #       endif
   
           pthread_mutex_destroy(&mutex_sigaction);
         exit(EXIT_SUCCESS);          exit(EXIT_SUCCESS);
     }      }
     else      else

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


CVSweb interface <joel.bertrand@systella.fr>