Diff for /rpl/src/gestion_threads.c between versions 1.112 and 1.113

version 1.112, 2019/02/09 13:36:37 version 1.113, 2019/02/11 09:45:48
Line 604  lancement_thread(void *argument) Line 604  lancement_thread(void *argument)
                 (*(*((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)
                   {
                       (*s_etat_processus).erreur_systeme = d_es_processus;
                       pthread_exit(NULL);
                   }
   
                 action.sa_handler = SIG_IGN;                  action.sa_handler = SIG_IGN;
                 action.sa_flags = 0;                  action.sa_flags = 0;
   
                 if (sigaction(SIGPIPE, &action, &registre) != 0)                  if (sigaction(SIGPIPE, &action, &registre) != 0)
                 {                  {
                       pthread_mutex_unlock(&mutex_sigaction);
                     pthread_mutex_unlock(&((*s_etat_processus)                      pthread_mutex_unlock(&((*s_etat_processus)
                             .mutex_pile_processus));                              .mutex_pile_processus));
   
Line 628  lancement_thread(void *argument) Line 635  lancement_thread(void *argument)
                     }                      }
   
                     (*s_etat_processus).erreur_systeme = d_es_signal;                      (*s_etat_processus).erreur_systeme = d_es_signal;
                     exit(EXIT_FAILURE);                      pthread_exit(NULL);
                 }                  }
   
                 while((longueur_ecriture = write_atomic(                  while((longueur_ecriture = write_atomic(
Line 661  lancement_thread(void *argument) Line 668  lancement_thread(void *argument)
   
                 if (sigaction(SIGPIPE, &registre, NULL) != 0)                  if (sigaction(SIGPIPE, &registre, NULL) != 0)
                 {                  {
                       pthread_mutex_unlock(&mutex_sigaction);
                       pthread_mutex_unlock(&((*s_etat_processus)
                               .mutex_pile_processus));
   
                       (*s_etat_processus).erreur_systeme = d_es_signal;
                       pthread_exit(NULL);
                   }
   
                   if (pthread_mutex_unlock(&mutex_sigaction) != 0)
                   {
                     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);                      pthread_exit(NULL);
                 }                  }
             }              }
         }          }
Line 685  lancement_thread(void *argument) Line 702  lancement_thread(void *argument)
             pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus));              pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus));
   
             (*s_etat_processus).erreur_systeme = d_es_processus;              (*s_etat_processus).erreur_systeme = d_es_processus;
             exit(EXIT_FAILURE);              pthread_exit(NULL);
         }          }
   
         if ((*s_etat_processus).nombre_interruptions_non_affectees != 0)          if ((*s_etat_processus).nombre_interruptions_non_affectees != 0)
Line 699  lancement_thread(void *argument) Line 716  lancement_thread(void *argument)
             pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus));              pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus));
   
             (*s_etat_processus).erreur_systeme = d_es_processus;              (*s_etat_processus).erreur_systeme = d_es_processus;
             exit(EXIT_FAILURE);              pthread_exit(NULL);
         }          }
   
         pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus));          pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus));
Line 1060  lancement_thread(void *argument) Line 1077  lancement_thread(void *argument)
     pthread_mutex_unlock(&((*s_argument_thread).mutex));      pthread_mutex_unlock(&((*s_argument_thread).mutex));
   
     pthread_exit(NULL);      pthread_exit(NULL);
     return(NULL);  
 }  }
   
 // vim: ts=4  // vim: ts=4

Removed from v.1.112  
changed lines
  Added in v.1.113


CVSweb interface <joel.bertrand@systella.fr>