Diff for /rpl/src/instructions_d5.c between versions 1.67 and 1.68

version 1.67, 2011/09/14 14:34:28 version 1.68, 2011/09/14 17:55:59
Line 1278  instruction_detach(struct_processus *s_e Line 1278  instruction_detach(struct_processus *s_e
   
         (*s_etat_processus).pointeur_signal_lecture = 0;          (*s_etat_processus).pointeur_signal_lecture = 0;
         (*s_etat_processus).pointeur_signal_ecriture = 0;          (*s_etat_processus).pointeur_signal_ecriture = 0;
         (*s_etat_processus).tid_courant = pthread_self();  
   
         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 &
Line 1298  instruction_detach(struct_processus *s_e Line 1297  instruction_detach(struct_processus *s_e
             fflush(stdout);              fflush(stdout);
         }          }
   
 #       ifndef SEMAPHORES_NOMMES  
         sem_post(&semaphore_gestionnaires_signaux);  
         sem_destroy(&semaphore_gestionnaires_signaux);  
         sem_init(&semaphore_gestionnaires_signaux, 0, 0);  
 #       else  
         sem_post(semaphore_gestionnaires_signaux);  
         sem_destroy2(semaphore_gestionnaires_signaux,  
                 sem_gestionnaires_signaux);  
   
         if ((semaphore_gestionnaires_signaux = sem_init2(0,  
                 sem_gestionnaires_signaux)) == SEM_FAILED)  
         {  
             (*s_etat_processus).erreur_systeme = d_es_processus;  
         }  
 #       endif  
   
 #       ifndef SEMAPHORES_NOMMES  
         sem_post(&semaphore_liste_threads);  
         sem_destroy(&semaphore_liste_threads);  
         sem_init(&semaphore_liste_threads, 0, 1);  
 #       else  
         sem_post(semaphore_liste_threads);  
         sem_destroy2(semaphore_liste_threads, sem_liste_threads);  
   
         if ((semaphore_liste_threads = sem_init2(1,  
                 sem_liste_threads)) == SEM_FAILED)  
         {  
             (*s_etat_processus).erreur_systeme = d_es_processus;  
         }  
 #       endif  
   
 #       ifndef SEMAPHORES_NOMMES  
         sem_destroy(&semaphore_gestionnaires_signaux_atomique);  
         sem_init(&semaphore_gestionnaires_signaux_atomique, 0, 1);  
         sem_trywait(&((*s_etat_processus).semaphore_fork));  
 #       else  
         sem_destroy2(semaphore_gestionnaires_signaux_atomique,  
                 sem_gestionnaires_signaux_atomique);  
   
         if ((semaphore_gestionnaires_signaux_atomique = sem_init2(1,  
                 sem_gestionnaires_signaux_atomique)) == SEM_FAILED)  
         {  
             (*s_etat_processus).erreur_systeme = d_es_processus;  
         }  
   
         sem_trywait((*s_etat_processus).semaphore_fork);  
 #       endif  
   
 #       ifndef SEMAPHORES_NOMMES  
         if (pthread_setspecific(semaphore_fork_processus_courant,  
                 &((*s_etat_processus).semaphore_fork)) != 0)  
 #       else  
         if (pthread_setspecific(semaphore_fork_processus_courant,  
                 (*s_etat_processus).semaphore_fork) != 0)  
 #       endif  
         {  
             (*s_etat_processus).erreur_systeme = d_es_processus;  
         }  
   
         if (close((*s_argument_thread).pipe_erreurs[0]) != 0)          if (close((*s_argument_thread).pipe_erreurs[0]) != 0)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_processus;              (*s_etat_processus).erreur_systeme = d_es_processus;
Line 2814  instruction_detach(struct_processus *s_e Line 2754  instruction_detach(struct_processus *s_e
         pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation));          pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation));
         pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes));          pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes));
   
         pthread_key_delete(semaphore_fork_processus_courant);          pthread_mutex_unlock(&((*s_etat_processus).mutex_fork));
           pthread_mutex_destroy(&((*s_etat_processus).mutex_fork));
 #       ifndef SEMAPHORES_NOMMES  
         sem_post(&((*s_etat_processus).semaphore_fork));  
         sem_destroy(&((*s_etat_processus).semaphore_fork));  
 #       else  
         sem_post((*s_etat_processus).semaphore_fork);  
         sem_destroy2((*s_etat_processus).semaphore_fork, sem_fork);  
 #       endif  
   
         free((*s_etat_processus).localisation);          free((*s_etat_processus).localisation);
         free(s_argument_thread);          free(s_argument_thread);
   
 #       ifndef SEMAPHORES_NOMMES  
         sem_destroy(&semaphore_liste_threads);  
         sem_post(&semaphore_gestionnaires_signaux);  
         sem_destroy(&semaphore_gestionnaires_signaux);  
         sem_destroy(&semaphore_gestionnaires_signaux_atomique);  
 #       else  
         sem_destroy2(semaphore_liste_threads, sem_liste_threads);  
         sem_post(semaphore_gestionnaires_signaux);  
         sem_destroy2(semaphore_gestionnaires_signaux,  
                 sem_gestionnaires_signaux);  
         sem_destroy2(semaphore_gestionnaires_signaux_atomique,  
                 sem_gestionnaires_signaux_atomique);  
 #       endif  
   
         clear_history();          clear_history();
   
         destruction_queue_signaux(s_etat_processus);          destruction_queue_signaux(s_etat_processus);

Removed from v.1.67  
changed lines
  Added in v.1.68


CVSweb interface <joel.bertrand@systella.fr>