Diff for /rpl/src/gestion_threads.c between versions 1.51 and 1.52

version 1.51, 2011/09/14 17:55:59 version 1.52, 2011/09/20 08:56:23
Line 76  lancement_thread(void *argument) Line 76  lancement_thread(void *argument)
     (*s_argument_thread).tid = pthread_self();      (*s_argument_thread).tid = pthread_self();
     (*s_argument_thread).thread_actif = d_vrai;      (*s_argument_thread).thread_actif = d_vrai;
   
     if (pthread_mutex_unlock(&((*s_etat_processus).mutex)) != 0)  
     {  
         (*s_etat_processus).erreur_systeme = d_es_processus;  
   
         pthread_mutex_lock(&((*s_argument_thread).mutex));  
         pthread_mutex_unlock(&((*s_argument_thread).mutex));  
   
         (*s_argument_thread).thread_actif = d_faux;  
   
         tid_final = -2;  
   
         while((longueur_ecriture = write_atomic(s_etat_processus,  
                 (*s_argument_thread).pipe_nombre_interruptions_attente[1],  
                 &tid_final, sizeof(tid_final))) != sizeof(tid_final))  
         {  
             if (longueur_ecriture == -1)  
             {  
                 break;  
             }  
         }  
   
         while((longueur_ecriture = write_atomic(s_etat_processus,  
                 (*s_argument_thread).pipe_nombre_objets_attente[1],  
                 &tid_final, sizeof(tid_final))) != sizeof(tid_final))  
         {  
             if (longueur_ecriture == -1)  
             {  
                 break;  
             }  
         }  
   
         pthread_exit(NULL);  
     }  
   
     insertion_thread(s_etat_processus, d_faux);      insertion_thread(s_etat_processus, d_faux);
   
     // Envoi d'une donnée pour signaler le démarrage du thread au thread      // Envoi d'une donnée pour signaler le démarrage du thread au thread
Line 119  lancement_thread(void *argument) Line 85  lancement_thread(void *argument)
             (*s_argument_thread).pipe_nombre_objets_attente[1],              (*s_argument_thread).pipe_nombre_objets_attente[1],
             "-", sizeof(unsigned char)) != sizeof(unsigned char))              "-", sizeof(unsigned char)) != sizeof(unsigned char))
     {      {
         pthread_mutex_unlock(&((*s_etat_processus).mutex));  
         (*s_etat_processus).erreur_systeme = d_es_processus;          (*s_etat_processus).erreur_systeme = d_es_processus;
   
         pthread_mutex_lock(&((*s_argument_thread).mutex));          pthread_mutex_lock(&((*s_argument_thread).mutex));
Line 1018  lancement_thread(void *argument) Line 983  lancement_thread(void *argument)
     retrait_thread(s_etat_processus);      retrait_thread(s_etat_processus);
     pthread_mutex_destroy(&((*s_etat_processus).mutex));      pthread_mutex_destroy(&((*s_etat_processus).mutex));
     pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation));      pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation));
     pthread_mutex_destroy(&((*s_etat_processus).mutex_fork));      sem_destroy(&((*s_etat_processus).semaphore_fork));
   
     liberation_contexte_cas(s_etat_processus);      liberation_contexte_cas(s_etat_processus);
     free((*s_etat_processus).localisation);      free((*s_etat_processus).localisation);

Removed from v.1.51  
changed lines
  Added in v.1.52


CVSweb interface <joel.bertrand@systella.fr>