Diff for /rpl/src/instructions_d5.c between versions 1.9 and 1.10

version 1.9, 2010/04/07 13:45:05 version 1.10, 2010/04/17 18:57:35
Line 1290  instruction_detach(struct_processus *s_e Line 1290  instruction_detach(struct_processus *s_e
          * Processus fils           * Processus fils
          */           */
   
   #       ifndef SEMAPHORES_NOMMES
         sem_post(&semaphore_gestionnaires_signaux);          sem_post(&semaphore_gestionnaires_signaux);
         sem_destroy(&semaphore_gestionnaires_signaux);          sem_destroy(&semaphore_gestionnaires_signaux);
         sem_init(&semaphore_gestionnaires_signaux, 0, 0);          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_post(&semaphore_liste_threads);
         sem_destroy(&semaphore_liste_threads);          sem_destroy(&semaphore_liste_threads);
         sem_init(&semaphore_liste_threads, 0, 1);          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_destroy(&semaphore_gestionnaires_signaux_atomique);
         sem_init(&semaphore_gestionnaires_signaux_atomique, 0, 1);          sem_init(&semaphore_gestionnaires_signaux_atomique, 0, 1);
   
         sem_trywait(&((*s_etat_processus).semaphore_fork));          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,          if (pthread_setspecific(semaphore_fork_processus_courant,
                 &((*s_etat_processus).semaphore_fork)) != 0)                  &((*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;              (*s_etat_processus).erreur_systeme = d_es_processus;
         }          }
Line 2576  instruction_detach(struct_processus *s_e Line 2616  instruction_detach(struct_processus *s_e
   
         pthread_key_delete(semaphore_fork_processus_courant);          pthread_key_delete(semaphore_fork_processus_courant);
   
   #       ifndef SEMAPHORES_NOMMES
         sem_post(&((*s_etat_processus).semaphore_fork));          sem_post(&((*s_etat_processus).semaphore_fork));
         sem_destroy(&((*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_etat_processus);          free(s_etat_processus);
         free(s_argument_thread);          free(s_argument_thread);
   
   #       ifndef SEMAPHORES_NOMMES
         sem_destroy(&semaphore_liste_threads);          sem_destroy(&semaphore_liste_threads);
         sem_post(&semaphore_gestionnaires_signaux);          sem_post(&semaphore_gestionnaires_signaux);
         sem_destroy(&semaphore_gestionnaires_signaux);          sem_destroy(&semaphore_gestionnaires_signaux);
         sem_destroy(&semaphore_gestionnaires_signaux_atomique);          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();
   

Removed from v.1.9  
changed lines
  Added in v.1.10


CVSweb interface <joel.bertrand@systella.fr>