Diff for /rpl/src/rpl.c between versions 1.150 and 1.191

version 1.150, 2013/10/04 07:54:50 version 1.191, 2017/01/18 15:26:05
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.16    RPL/2 (R) version 4.1.26
   Copyright (C) 1989-2013 Dr. BERTRAND Joël    Copyright (C) 1989-2016 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 23 Line 23
 #define  MAIN_RPL  #define  MAIN_RPL
 #include "rpl-conv.h"  #include "rpl-conv.h"
   
   // Bug de gcc à partir de gcc 4.6 (bug 48544)
   #pragma GCC diagnostic push
   #pragma GCC diagnostic ignored "-Wclobbered"
   
   
 /*  /*
 ================================================================================  ================================================================================
Line 119  rplinit(int argc, char *argv[], char *en Line 123  rplinit(int argc, char *argv[], char *en
     errno = 0;      errno = 0;
     s_queue_signaux = NULL;      s_queue_signaux = NULL;
     routine_recursive = 0;      routine_recursive = 0;
       nombre_thread_surveillance_processus = 0;
     pid_processus_pere = getpid();      pid_processus_pere = getpid();
   
   #   ifdef DEBUG_PROC
       __proc = 0;
   #   endif
   
 #   ifdef DEBUG_MEMOIRE  #   ifdef DEBUG_MEMOIRE
     debug_memoire_initialisation();      debug_memoire_initialisation();
 #   endif  #   endif
Line 128  rplinit(int argc, char *argv[], char *en Line 137  rplinit(int argc, char *argv[], char *en
     setvbuf(stdout, NULL, _IOLBF, 0);      setvbuf(stdout, NULL, _IOLBF, 0);
     setvbuf(stderr, NULL, _IOLBF, 0);      setvbuf(stderr, NULL, _IOLBF, 0);
   
 #   ifndef SEMAPHORES_NOMMES      if ((s_etat_processus = sys_malloc(sizeof(struct_processus))) == NULL)
     sem_init(&semaphore_gestionnaires_signaux, 0, 0);  
 #   else  
     semaphore_gestionnaires_signaux = sem_init2(0, getpid(), SEM_SIGNAUX);  
       
     if (semaphore_gestionnaires_signaux == SEM_FAILED)  
     {      {
         erreur = d_es_allocation_memoire;          erreur = d_es_allocation_memoire;
   
Line 155  rplinit(int argc, char *argv[], char *en Line 159  rplinit(int argc, char *argv[], char *en
   
         return(EXIT_FAILURE);          return(EXIT_FAILURE);
     }      }
 #   endif  
   
     if ((s_etat_processus = malloc(sizeof(struct_processus))) == NULL)      (*s_etat_processus).erreur_systeme = d_es;
   
       initialisation_allocateur_buffer(s_etat_processus);
   
       if ((*s_etat_processus).erreur_systeme != d_es)
     {      {
 #       ifndef SEMAPHORES_NOMMES          erreur = d_es_allocation_memoire;
         sem_post(&semaphore_gestionnaires_signaux);  
         sem_destroy(&semaphore_gestionnaires_signaux);          if ((langue = getenv("LANG")) != NULL)
 #       else          {
         sem_post(semaphore_gestionnaires_signaux);              if (strncmp(langue, "fr", 2) == 0)
         sem_destroy2(semaphore_gestionnaires_signaux, getpid(), SEM_SIGNAUX);              {
 #       endif                  uprintf("+++Système : Mémoire insuffisante\n");
               }
               else
               {
                   uprintf("+++System : Not enough memory\n");
               }
           }
           else
           {
               uprintf("+++System : Not enough memory\n");
           }
   
           return(EXIT_FAILURE);
       }
   
       if (initialisation_etat_processus_readline() != 0)
       {
         erreur = d_es_allocation_memoire;          erreur = d_es_allocation_memoire;
   
         if ((langue = getenv("LANG")) != NULL)          if ((langue = getenv("LANG")) != NULL)
Line 200  rplinit(int argc, char *argv[], char *en Line 222  rplinit(int argc, char *argv[], char *en
   
     if (getcwd(repertoire_initial, RPL_PATH_MAX) == NULL)      if (getcwd(repertoire_initial, RPL_PATH_MAX) == NULL)
     {      {
 #       ifndef SEMAPHORES_NOMMES  
         sem_post(&semaphore_gestionnaires_signaux);  
         sem_destroy(&semaphore_gestionnaires_signaux);  
 #       else  
         sem_post(semaphore_gestionnaires_signaux);  
         sem_destroy2(semaphore_gestionnaires_signaux, getpid(), SEM_SIGNAUX);  
 #       endif  
   
         if ((*s_etat_processus).langue == 'F')          if ((*s_etat_processus).langue == 'F')
         {          {
             uprintf("+++Système : Mémoire insuffisante\n");              uprintf("+++Système : Mémoire insuffisante\n");
Line 220  rplinit(int argc, char *argv[], char *en Line 234  rplinit(int argc, char *argv[], char *en
         return(EXIT_FAILURE);          return(EXIT_FAILURE);
     }      }
   
     if ((arg_exec = malloc((((size_t) argc) + 1) * sizeof(char *))) == NULL)      if ((arg_exec = sys_malloc((((size_t) argc) + 1) * sizeof(char *))) == NULL)
     {      {
 #       ifndef SEMAPHORES_NOMMES  
         sem_post(&semaphore_gestionnaires_signaux);  
         sem_destroy(&semaphore_gestionnaires_signaux);  
 #       else  
         sem_post(semaphore_gestionnaires_signaux);  
         sem_destroy2(semaphore_gestionnaires_signaux, getpid(), SEM_SIGNAUX);  
 #       endif  
   
         if ((*s_etat_processus).langue == 'F')          if ((*s_etat_processus).langue == 'F')
         {          {
             uprintf("+++Système : Mémoire insuffisante\n");              uprintf("+++Système : Mémoire insuffisante\n");
Line 247  rplinit(int argc, char *argv[], char *en Line 253  rplinit(int argc, char *argv[], char *en
         arg_exec[i] = argv[i];          arg_exec[i] = argv[i];
     }      }
   
     argv[argc] = NULL;      arg_exec[argc] = NULL;
   
     initialisation_contexte_cas(s_etat_processus);      initialisation_contexte_cas(s_etat_processus);
   
Line 283  rplinit(int argc, char *argv[], char *en Line 289  rplinit(int argc, char *argv[], char *en
     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_NORMAL);
       pthread_mutex_init(&((*s_etat_processus).mutex_allocation_buffer),
               &attributs_mutex);
       pthread_mutexattr_destroy(&attributs_mutex);
   
       pthread_mutexattr_init(&attributs_mutex);
     pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_RECURSIVE);      pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_RECURSIVE);
     pthread_mutex_init(&mutex_sections_critiques, &attributs_mutex);      pthread_mutex_init(&mutex_sections_critiques, &attributs_mutex);
     pthread_mutexattr_destroy(&attributs_mutex);      pthread_mutexattr_destroy(&attributs_mutex);
Line 292  rplinit(int argc, char *argv[], char *en Line 304  rplinit(int argc, char *argv[], char *en
     pthread_mutex_init(&mutex_liste_variables_partagees, &attributs_mutex);      pthread_mutex_init(&mutex_liste_variables_partagees, &attributs_mutex);
     pthread_mutexattr_destroy(&attributs_mutex);      pthread_mutexattr_destroy(&attributs_mutex);
   
       pthread_mutexattr_init(&attributs_mutex);
       pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_RECURSIVE);
       pthread_mutex_init(&mutex_liste_threads, &attributs_mutex);
       pthread_mutexattr_destroy(&attributs_mutex);
   
 #   ifndef SEMAPHORES_NOMMES  #   ifndef SEMAPHORES_NOMMES
         sem_init(&((*s_etat_processus).semaphore_fork), 0, 0);          sem_init(&((*s_etat_processus).semaphore_fork), 0, 0);
 #   else  #   else
         if (((*s_etat_processus).semaphore_fork = sem_init3(0, getpid(),          if (((*s_etat_processus).semaphore_fork = sem_init3(0, getpid(),
                 pthread_self(), SEM_FORK)) == SEM_FAILED)                  pthread_self(), SEM_FORK)) == SEM_FAILED)
         {          {
 #           ifndef SEMAPHORES_NOMMES              liberation_contexte_cas(s_etat_processus);
                 sem_post(&semaphore_gestionnaires_signaux);  
                 sem_destroy(&semaphore_gestionnaires_signaux);  
 #           else  
                 sem_post(semaphore_gestionnaires_signaux);  
                 sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                         SEM_SIGNAUX);  
 #           endif  
   
             liberation(contexte_cas(s_etat_processus);  
   
             if ((*s_etat_processus).langue == 'F')              if ((*s_etat_processus).langue == 'F')
             {              {
Line 338  rplinit(int argc, char *argv[], char *en Line 346  rplinit(int argc, char *argv[], char *en
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_post(&((*s_etat_processus).semaphore_fork));              sem_post(&((*s_etat_processus).semaphore_fork));
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #       else  #       else
             sem_post((*s_etat_processus).semaphore_fork);              sem_post((*s_etat_processus).semaphore_fork);
             sem_post(semaphore_gestionnaires_signaux);              sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);                      pthread_self(), SEM_FORK);
 #       endif  #       endif
   
Line 375  rplinit(int argc, char *argv[], char *en Line 378  rplinit(int argc, char *argv[], char *en
         {          {
 #           ifndef SEMAPHORES_NOMMES  #           ifndef SEMAPHORES_NOMMES
                 sem_post(&((*s_etat_processus).semaphore_fork));                  sem_post(&((*s_etat_processus).semaphore_fork));
                 sem_post(&semaphore_gestionnaires_signaux);  
                 sem_destroy(&semaphore_gestionnaires_signaux);  
                 sem_destroy(&((*s_etat_processus).semaphore_fork));                  sem_destroy(&((*s_etat_processus).semaphore_fork));
 #           else  #           else
                 sem_post((*s_etat_processus).semaphore_fork);                  sem_post((*s_etat_processus).semaphore_fork);
                 sem_post(semaphore_gestionnaires_signaux);                  sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
                 sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                         SEM_SIGNAUX);  
                 sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                         pthread_self(), SEM_FORK);                          pthread_self(), SEM_FORK);
 #           endif  #           endif
   
             liberation_contexte_cas(s_etat_processus);              liberation_contexte_cas(s_etat_processus);
             liberation_queue_signaux(s_etat_processus);              destruction_queue_signaux(s_etat_processus);
   
             if ((*s_etat_processus).langue == 'F')              if ((*s_etat_processus).langue == 'F')
             {              {
Line 414  rplinit(int argc, char *argv[], char *en Line 412  rplinit(int argc, char *argv[], char *en
         {          {
 #           ifndef SEMAPHORES_NOMMES  #           ifndef SEMAPHORES_NOMMES
                 sem_post(&((*s_etat_processus).semaphore_fork));                  sem_post(&((*s_etat_processus).semaphore_fork));
                 sem_post(&semaphore_gestionnaires_signaux);  
                 sem_destroy(&semaphore_gestionnaires_signaux);  
                 sem_destroy(&((*s_etat_processus).semaphore_fork));                  sem_destroy(&((*s_etat_processus).semaphore_fork));
 #           else  #           else
                 sem_post((*s_etat_processus).semaphore_fork);                  sem_post((*s_etat_processus).semaphore_fork);
                 sem_post(semaphore_gestionnaires_signaux);                  sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
                 sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                         SEM_SIGNAUX);  
                 sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                         pthread_self(), SEM_FORK);                          pthread_self(), SEM_FORK);
 #           endif  #           endif
   
             liberation_contexte_cas(s_etat_processus);              liberation_contexte_cas(s_etat_processus);
             liberation_queue_signaux(s_etat_processus);              destruction_queue_signaux(s_etat_processus);
   
             if ((*s_etat_processus).langue == 'F')              if ((*s_etat_processus).langue == 'F')
             {              {
Line 452  rplinit(int argc, char *argv[], char *en Line 445  rplinit(int argc, char *argv[], char *en
   
         if ((*s_etat_processus).langue == 'F')          if ((*s_etat_processus).langue == 'F')
         {          {
             printf("+++Copyright (C) 1989 à 2012, 2013 BERTRAND Joël\n");              printf("+++Copyright (C) 1989 à 2016, 2017 BERTRAND Joël\n");
         }          }
         else          else
         {          {
             printf("+++Copyright (C) 1989 to 2012, 2013 BERTRAND Joel\n");              printf("+++Copyright (C) 1989 to 2016, 2017 BERTRAND Joel\n");
         }          }
     }      }
   
Line 488  rplinit(int argc, char *argv[], char *en Line 481  rplinit(int argc, char *argv[], char *en
         {          {
 #           ifndef SEMAPHORES_NOMMES  #           ifndef SEMAPHORES_NOMMES
                 sem_post(&((*s_etat_processus).semaphore_fork));                  sem_post(&((*s_etat_processus).semaphore_fork));
                 sem_post(&semaphore_gestionnaires_signaux);  
                 sem_destroy(&semaphore_gestionnaires_signaux);  
                 sem_destroy(&((*s_etat_processus).semaphore_fork));                  sem_destroy(&((*s_etat_processus).semaphore_fork));
 #           else  #           else
                 sem_post((*s_etat_processus).semaphore_fork);                  sem_post((*s_etat_processus).semaphore_fork);
                 sem_post(semaphore_gestionnaires_signaux);                  sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
                 sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                         SEM_SIGNAUX);  
                 sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                         pthread_self(), SEM_FORK);                          pthread_self(), SEM_FORK);
 #           endif  #           endif
   
             liberation_contexte_cas(s_etat_processus);              liberation_contexte_cas(s_etat_processus);
             liberation_queue_signaux(s_etat_processus);              destruction_queue_signaux(s_etat_processus);
   
             erreur = d_es_signal;              erreur = d_es_signal;
   
Line 531  rplinit(int argc, char *argv[], char *en Line 519  rplinit(int argc, char *argv[], char *en
         }          }
 #   endif  #   endif
   
     if (lancement_thread_signaux(s_etat_processus) != d_absence_erreur)  
     {  
 #       ifndef SEMAPHORES_NOMMES  
             sem_post(&((*s_etat_processus).semaphore_fork));  
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));  
 #       else  
             sem_post((*s_etat_processus).semaphore_fork);  
             sem_post(semaphore_gestionnaires_signaux);  
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);  
 #       endif  
   
         liberation_contexte_cas(s_etat_processus);  
         liberation_queue_signaux(s_etat_processus);  
   
 #       ifdef HAVE_STACK_OVERFLOW_RECOVERY  
             stackoverflow_deinstall_handler();  
 #       endif  
   
         erreur = d_es_signal;  
   
         if ((*s_etat_processus).langue == 'F')  
         {  
             printf("+++Système : Initialisation des signaux POSIX "  
                     "impossible\n");  
         }  
         else  
         {  
             printf("+++System : Initialization of POSIX signals failed\n");  
         }  
   
         return(EXIT_FAILURE);  
     }  
   
     action.sa_handler = interruption1;      action.sa_handler = interruption1;
     action.sa_flags = 0;      action.sa_flags = 0;
   
Line 576  rplinit(int argc, char *argv[], char *en Line 526  rplinit(int argc, char *argv[], char *en
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_post(&((*s_etat_processus).semaphore_fork));              sem_post(&((*s_etat_processus).semaphore_fork));
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #       else  #       else
             sem_post((*s_etat_processus).semaphore_fork);              sem_post((*s_etat_processus).semaphore_fork);
             sem_post(semaphore_gestionnaires_signaux);              sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);                      pthread_self(), SEM_FORK);
 #       endif  #       endif
   
         liberation_contexte_cas(s_etat_processus);          liberation_contexte_cas(s_etat_processus);
         liberation_queue_signaux(s_etat_processus);          destruction_queue_signaux(s_etat_processus);
   
 #       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #       ifdef HAVE_STACK_OVERFLOW_RECOVERY
             stackoverflow_deinstall_handler();              stackoverflow_deinstall_handler();
Line 625  rplinit(int argc, char *argv[], char *en Line 570  rplinit(int argc, char *argv[], char *en
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_post(&((*s_etat_processus).semaphore_fork));              sem_post(&((*s_etat_processus).semaphore_fork));
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #       else  #       else
             sem_post((*s_etat_processus).semaphore_fork);              sem_post((*s_etat_processus).semaphore_fork);
             sem_post(semaphore_gestionnaires_signaux);              sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);                      pthread_self(), SEM_FORK);
 #       endif  #       endif
   
         liberation_contexte_cas(s_etat_processus);          liberation_contexte_cas(s_etat_processus);
         liberation_queue_signaux(s_etat_processus);          destruction_queue_signaux(s_etat_processus);
   
 #       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #       ifdef HAVE_STACK_OVERFLOW_RECOVERY
             stackoverflow_deinstall_handler();              stackoverflow_deinstall_handler();
Line 663  rplinit(int argc, char *argv[], char *en Line 603  rplinit(int argc, char *argv[], char *en
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_post(&((*s_etat_processus).semaphore_fork));              sem_post(&((*s_etat_processus).semaphore_fork));
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #       else  #       else
             sem_post((*s_etat_processus).semaphore_fork);              sem_post((*s_etat_processus).semaphore_fork);
             sem_post(semaphore_gestionnaires_signaux);              sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);                      pthread_self(), SEM_FORK);
 #       endif  #       endif
   
         liberation_contexte_cas(s_etat_processus);          liberation_contexte_cas(s_etat_processus);
         liberation_queue_signaux(s_etat_processus);          destruction_queue_signaux(s_etat_processus);
   
 #       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #       ifdef HAVE_STACK_OVERFLOW_RECOVERY
             stackoverflow_deinstall_handler();              stackoverflow_deinstall_handler();
Line 712  rplinit(int argc, char *argv[], char *en Line 647  rplinit(int argc, char *argv[], char *en
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_post(&((*s_etat_processus).semaphore_fork));              sem_post(&((*s_etat_processus).semaphore_fork));
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #       else  #       else
             sem_post((*s_etat_processus).semaphore_fork);              sem_post((*s_etat_processus).semaphore_fork);
             sem_post(semaphore_gestionnaires_signaux);              sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);                      pthread_self(), SEM_FORK);
 #       endif  #       endif
   
         liberation_contexte_cas(s_etat_processus);          liberation_contexte_cas(s_etat_processus);
         liberation_queue_signaux(s_etat_processus);          destruction_queue_signaux(s_etat_processus);
   
 #       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #       ifdef HAVE_STACK_OVERFLOW_RECOVERY
             stackoverflow_deinstall_handler();              stackoverflow_deinstall_handler();
Line 746  rplinit(int argc, char *argv[], char *en Line 676  rplinit(int argc, char *argv[], char *en
         return(EXIT_FAILURE);          return(EXIT_FAILURE);
     }      }
   
     if (sigaction(SIGALRM, &action, NULL) != 0)      if (sigaction(SIGUSR2, &action, NULL) != 0)
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_post(&((*s_etat_processus).semaphore_fork));              sem_post(&((*s_etat_processus).semaphore_fork));
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #       else  #       else
             sem_post((*s_etat_processus).semaphore_fork);              sem_post((*s_etat_processus).semaphore_fork);
             sem_post(semaphore_gestionnaires_signaux);              sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);                      pthread_self(), SEM_FORK);
 #       endif  #       endif
   
         liberation_contexte_cas(s_etat_processus);          liberation_contexte_cas(s_etat_processus);
         liberation_queue_signaux(s_etat_processus);          destruction_queue_signaux(s_etat_processus);
   
 #       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #       ifdef HAVE_STACK_OVERFLOW_RECOVERY
             stackoverflow_deinstall_handler();              stackoverflow_deinstall_handler();
Line 785  rplinit(int argc, char *argv[], char *en Line 710  rplinit(int argc, char *argv[], char *en
     }      }
   
     signal_test = SIGTEST;      signal_test = SIGTEST;
     raise(SIGALRM);      raise(SIGUSR2);
   
     attente.tv_sec = 0;      attente.tv_sec = 0;
     attente.tv_nsec = 1000000;      attente.tv_nsec = 1000000;
Line 795  rplinit(int argc, char *argv[], char *en Line 720  rplinit(int argc, char *argv[], char *en
         nanosleep(&attente, NULL);          nanosleep(&attente, NULL);
     }      }
   
     if (signal_test != SIGALRM)      if (signal_test != SIGUSR2)
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_post(&((*s_etat_processus).semaphore_fork));              sem_post(&((*s_etat_processus).semaphore_fork));
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #       else  #       else
             sem_post((*s_etat_processus).semaphore_fork);              sem_post((*s_etat_processus).semaphore_fork);
             sem_post(semaphore_gestionnaires_signaux);              sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);                      pthread_self(), SEM_FORK);
 #       endif  #       endif
   
         liberation_contexte_cas(s_etat_processus);          liberation_contexte_cas(s_etat_processus);
         liberation_queue_signaux(s_etat_processus);          destruction_queue_signaux(s_etat_processus);
   
 #       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #       ifdef HAVE_STACK_OVERFLOW_RECOVERY
             stackoverflow_deinstall_handler();              stackoverflow_deinstall_handler();
Line 840  rplinit(int argc, char *argv[], char *en Line 760  rplinit(int argc, char *argv[], char *en
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_post(&((*s_etat_processus).semaphore_fork));              sem_post(&((*s_etat_processus).semaphore_fork));
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #       else  #       else
             sem_post((*s_etat_processus).semaphore_fork);              sem_post((*s_etat_processus).semaphore_fork);
             sem_post(semaphore_gestionnaires_signaux);              sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);                      pthread_self(), SEM_FORK);
 #       endif  #       endif
   
         liberation_contexte_cas(s_etat_processus);          liberation_contexte_cas(s_etat_processus);
         liberation_queue_signaux(s_etat_processus);          destruction_queue_signaux(s_etat_processus);
   
 #       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #       ifdef HAVE_STACK_OVERFLOW_RECOVERY
             stackoverflow_deinstall_handler();              stackoverflow_deinstall_handler();
Line 887  rplinit(int argc, char *argv[], char *en Line 802  rplinit(int argc, char *argv[], char *en
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_post(&((*s_etat_processus).semaphore_fork));              sem_post(&((*s_etat_processus).semaphore_fork));
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #       else  #       else
             sem_post((*s_etat_processus).semaphore_fork);              sem_post((*s_etat_processus).semaphore_fork);
             sem_post(semaphore_gestionnaires_signaux);              sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);                      pthread_self(), SEM_FORK);
 #       endif  #       endif
   
         liberation_contexte_cas(s_etat_processus);          liberation_contexte_cas(s_etat_processus);
         liberation_queue_signaux(s_etat_processus);          destruction_queue_signaux(s_etat_processus);
   
 #       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #       ifdef HAVE_STACK_OVERFLOW_RECOVERY
             stackoverflow_deinstall_handler();              stackoverflow_deinstall_handler();
Line 928  rplinit(int argc, char *argv[], char *en Line 838  rplinit(int argc, char *argv[], char *en
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_post(&((*s_etat_processus).semaphore_fork));              sem_post(&((*s_etat_processus).semaphore_fork));
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #       else  #       else
             sem_post((*s_etat_processus).semaphore_fork);              sem_post((*s_etat_processus).semaphore_fork);
             sem_post(semaphore_gestionnaires_signaux);              sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);                      pthread_self(), SEM_FORK);
 #       endif  #       endif
   
         liberation_contexte_cas(s_etat_processus);          liberation_contexte_cas(s_etat_processus);
         liberation_queue_signaux(s_etat_processus);          destruction_queue_signaux(s_etat_processus);
   
 #       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #       ifdef HAVE_STACK_OVERFLOW_RECOVERY
             stackoverflow_deinstall_handler();              stackoverflow_deinstall_handler();
Line 977  rplinit(int argc, char *argv[], char *en Line 882  rplinit(int argc, char *argv[], char *en
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_post(&((*s_etat_processus).semaphore_fork));              sem_post(&((*s_etat_processus).semaphore_fork));
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #       else  #       else
             sem_post((*s_etat_processus).semaphore_fork);              sem_post((*s_etat_processus).semaphore_fork);
             sem_post(semaphore_gestionnaires_signaux);              sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);                      pthread_self(), SEM_FORK);
 #       endif  #       endif
   
         liberation_contexte_cas(s_etat_processus);          liberation_contexte_cas(s_etat_processus);
         liberation_queue_signaux(s_etat_processus);          destruction_queue_signaux(s_etat_processus);
   
 #       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #       ifdef HAVE_STACK_OVERFLOW_RECOVERY
             stackoverflow_deinstall_handler();              stackoverflow_deinstall_handler();
Line 1018  rplinit(int argc, char *argv[], char *en Line 918  rplinit(int argc, char *argv[], char *en
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_post(&((*s_etat_processus).semaphore_fork));              sem_post(&((*s_etat_processus).semaphore_fork));
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #       else  #       else
             sem_post((*s_etat_processus).semaphore_fork);              sem_post((*s_etat_processus).semaphore_fork);
             sem_post(semaphore_gestionnaires_signaux);              sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);                      pthread_self(), SEM_FORK);
 #       endif  #       endif
   
         liberation_contexte_cas(s_etat_processus);          liberation_contexte_cas(s_etat_processus);
         liberation_queue_signaux(s_etat_processus);          destruction_queue_signaux(s_etat_processus);
   
 #       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #       ifdef HAVE_STACK_OVERFLOW_RECOVERY
             stackoverflow_deinstall_handler();              stackoverflow_deinstall_handler();
Line 1067  rplinit(int argc, char *argv[], char *en Line 962  rplinit(int argc, char *argv[], char *en
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_post(&((*s_etat_processus).semaphore_fork));              sem_post(&((*s_etat_processus).semaphore_fork));
             sem_post(&semaphore_gestionnaires_signaux);  
             sem_destroy(&semaphore_gestionnaires_signaux);  
             sem_destroy(&((*s_etat_processus).semaphore_fork));              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #       else  #       else
             sem_post((*s_etat_processus).semaphore_fork);              sem_post((*s_etat_processus).semaphore_fork);
             sem_post(semaphore_gestionnaires_signaux);              sem_destroy3((*s_etat_processus).semaphore_fork, getpid(),
             sem_destroy2(semaphore_gestionnaires_signaux, getpid(),  
                     SEM_SIGNAUX);  
             sem_destroy3((*s_etat_processus).semphore_fork, getpid(),  
                     pthread_self(), SEM_FORK);                      pthread_self(), SEM_FORK);
 #       endif  #       endif
   
         liberation_contexte_cas(s_etat_processus);          liberation_contexte_cas(s_etat_processus);
         liberation_queue_signaux(s_etat_processus);          destruction_queue_signaux(s_etat_processus);
   
 #       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #       ifdef HAVE_STACK_OVERFLOW_RECOVERY
             stackoverflow_deinstall_handler();              stackoverflow_deinstall_handler();
Line 1172  rplinit(int argc, char *argv[], char *en Line 1062  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1216  rplinit(int argc, char *argv[], char *en Line 1101  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1263  rplinit(int argc, char *argv[], char *en Line 1143  rplinit(int argc, char *argv[], char *en
 #                                   ifndef SEMAPHORES_NOMMES  #                                   ifndef SEMAPHORES_NOMMES
                                     sem_post(&((*s_etat_processus)                                      sem_post(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
                                     sem_post(&semaphore_gestionnaires_signaux);  
                                     sem_destroy(  
                                             &semaphore_gestionnaires_signaux);  
                                     sem_destroy(&((*s_etat_processus)                                      sem_destroy(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
 #                                   else  #                                   else
                                     sem_post((*s_etat_processus)                                      sem_post((*s_etat_processus)
                                             .semaphore_fork);                                              .semaphore_fork);
                                     sem_post(semaphore_gestionnaires_signaux);  
                                     sem_destroy2(  
                                             semaphore_gestionnaires_signaux,  
                                             getpid(), SEM_SIGNAUX);  
                                     sem_destroy3((*s_etat_processus)                                      sem_destroy3((*s_etat_processus)
                                             .semphore_fork, getpid(),                                              .semaphore_fork, getpid(),
                                             pthread_self(), SEM_FORK);                                              pthread_self(), SEM_FORK);
 #                                   endif  #                                   endif
   
                                     liberation_contexte_cas(s_etat_processus);                                      liberation_contexte_cas(s_etat_processus);
                                     liberation_queue_signaux(s_etat_processus);                                      destruction_queue_signaux(s_etat_processus);
   
 #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                     stackoverflow_deinstall_handler();                                      stackoverflow_deinstall_handler();
Line 1326  rplinit(int argc, char *argv[], char *en Line 1199  rplinit(int argc, char *argv[], char *en
 #                                   ifndef SEMAPHORES_NOMMES  #                                   ifndef SEMAPHORES_NOMMES
                                     sem_post(&((*s_etat_processus)                                      sem_post(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
                                     sem_post(&semaphore_gestionnaires_signaux);  
                                     sem_destroy(  
                                             &semaphore_gestionnaires_signaux);  
                                     sem_destroy(&((*s_etat_processus)                                      sem_destroy(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
 #                                   else  #                                   else
                                     sem_post((*s_etat_processus)                                      sem_post((*s_etat_processus)
                                             .semaphore_fork);                                              .semaphore_fork);
                                     sem_post(semaphore_gestionnaires_signaux);  
                                     sem_destroy2(  
                                             semaphore_gestionnaires_signaux,  
                                             getpid(), SEM_SIGNAUX);  
                                     sem_destroy3((*s_etat_processus)                                      sem_destroy3((*s_etat_processus)
                                             .semphore_fork, getpid(),                                              .semaphore_fork, getpid(),
                                             pthread_self(), SEM_FORK);                                              pthread_self(), SEM_FORK);
 #                                   endif  #                                   endif
   
                                     liberation_contexte_cas(s_etat_processus);                                      liberation_contexte_cas(s_etat_processus);
                                     liberation_queue_signaux(s_etat_processus);                                      destruction_queue_signaux(s_etat_processus);
   
 #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                     stackoverflow_deinstall_handler();                                      stackoverflow_deinstall_handler();
Line 1383  rplinit(int argc, char *argv[], char *en Line 1249  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1426  rplinit(int argc, char *argv[], char *en Line 1287  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1471  rplinit(int argc, char *argv[], char *en Line 1327  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1516  rplinit(int argc, char *argv[], char *en Line 1367  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1560  rplinit(int argc, char *argv[], char *en Line 1406  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1605  rplinit(int argc, char *argv[], char *en Line 1446  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1642  rplinit(int argc, char *argv[], char *en Line 1478  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1679  rplinit(int argc, char *argv[], char *en Line 1510  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1725  rplinit(int argc, char *argv[], char *en Line 1551  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1779  rplinit(int argc, char *argv[], char *en Line 1600  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1824  rplinit(int argc, char *argv[], char *en Line 1640  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1861  rplinit(int argc, char *argv[], char *en Line 1672  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1906  rplinit(int argc, char *argv[], char *en Line 1712  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1951  rplinit(int argc, char *argv[], char *en Line 1752  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 1996  rplinit(int argc, char *argv[], char *en Line 1792  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 2033  rplinit(int argc, char *argv[], char *en Line 1824  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 2081  rplinit(int argc, char *argv[], char *en Line 1867  rplinit(int argc, char *argv[], char *en
 #                                   ifndef SEMAPHORES_NOMMES  #                                   ifndef SEMAPHORES_NOMMES
                                     sem_post(&((*s_etat_processus)                                      sem_post(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
                                     sem_post(&semaphore_gestionnaires_signaux);  
                                     sem_destroy(  
                                             &semaphore_gestionnaires_signaux);  
                                     sem_destroy(&((*s_etat_processus)                                      sem_destroy(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
 #                                   else  #                                   else
                                     sem_post((*s_etat_processus)                                      sem_post((*s_etat_processus)
                                             .semaphore_fork);                                              .semaphore_fork);
                                     sem_post(semaphore_gestionnaires_signaux);  
                                     sem_destroy2(  
                                             semaphore_gestionnaires_signaux,  
                                             getpid(), SEM_SIGNAUX);  
                                     sem_destroy3((*s_etat_processus)                                      sem_destroy3((*s_etat_processus)
                                             .semphore_fork, getpid(),                                              .semaphore_fork, getpid(),
                                             pthread_self(), SEM_FORK);                                              pthread_self(), SEM_FORK);
 #                                   endif  #                                   endif
   
                                     liberation_contexte_cas(s_etat_processus);                                      liberation_contexte_cas(s_etat_processus);
                                     liberation_queue_signaux(s_etat_processus);                                      destruction_queue_signaux(s_etat_processus);
   
 #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                     stackoverflow_deinstall_handler();                                      stackoverflow_deinstall_handler();
Line 2142  rplinit(int argc, char *argv[], char *en Line 1921  rplinit(int argc, char *argv[], char *en
 #                                   ifndef SEMAPHORES_NOMMES  #                                   ifndef SEMAPHORES_NOMMES
                                     sem_post(&((*s_etat_processus)                                      sem_post(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
                                     sem_post(&semaphore_gestionnaires_signaux);  
                                     sem_destroy(  
                                             &semaphore_gestionnaires_signaux);  
                                     sem_destroy(&((*s_etat_processus)                                      sem_destroy(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
 #                                   else  #                                   else
                                     sem_post((*s_etat_processus)                                      sem_post((*s_etat_processus)
                                             .semaphore_fork);                                              .semaphore_fork);
                                     sem_post(semaphore_gestionnaires_signaux);  
                                     sem_destroy2(  
                                             semaphore_gestionnaires_signaux,  
                                             getpid(), SEM_SIGNAUX);  
                                     sem_destroy3((*s_etat_processus)                                      sem_destroy3((*s_etat_processus)
                                             .semphore_fork, getpid(),                                              .semaphore_fork, getpid(),
                                             pthread_self(), SEM_FORK);                                              pthread_self(), SEM_FORK);
 #                                   endif  #                                   endif
   
                                     liberation_contexte_cas(s_etat_processus);                                      liberation_contexte_cas(s_etat_processus);
                                     liberation_queue_signaux(s_etat_processus);                                      destruction_queue_signaux(s_etat_processus);
   
 #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                     stackoverflow_deinstall_handler();                                      stackoverflow_deinstall_handler();
Line 2196  rplinit(int argc, char *argv[], char *en Line 1968  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 2231  rplinit(int argc, char *argv[], char *en Line 1998  rplinit(int argc, char *argv[], char *en
                             }                              }
   
                             if (((*s_etat_processus).definitions_chainees =                              if (((*s_etat_processus).definitions_chainees =
                                     compactage((*s_etat_processus)                                      compactage(s_etat_processus,
                                     .definitions_chainees)) == NULL)                                      (*s_etat_processus).definitions_chainees))
                                       == NULL)
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 2283  rplinit(int argc, char *argv[], char *en Line 2046  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 2331  rplinit(int argc, char *argv[], char *en Line 2089  rplinit(int argc, char *argv[], char *en
 #                                   ifndef SEMAPHORES_NOMMES  #                                   ifndef SEMAPHORES_NOMMES
                                     sem_post(&((*s_etat_processus)                                      sem_post(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
                                     sem_post(&semaphore_gestionnaires_signaux);  
                                     sem_destroy(  
                                             &semaphore_gestionnaires_signaux);  
                                     sem_destroy(&((*s_etat_processus)                                      sem_destroy(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
 #                                   else  #                                   else
                                     sem_post((*s_etat_processus)                                      sem_post((*s_etat_processus)
                                             .semaphore_fork);                                              .semaphore_fork);
                                     sem_post(semaphore_gestionnaires_signaux);  
                                     sem_destroy2(  
                                             semaphore_gestionnaires_signaux,  
                                             getpid(), SEM_SIGNAUX);  
                                     sem_destroy3((*s_etat_processus)                                      sem_destroy3((*s_etat_processus)
                                             .semphore_fork, getpid(),                                              .semaphore_fork, getpid(),
                                             pthread_self(), SEM_FORK);                                              pthread_self(), SEM_FORK);
 #                                   endif  #                                   endif
   
                                     liberation_contexte_cas(s_etat_processus);                                      liberation_contexte_cas(s_etat_processus);
                                     liberation_queue_signaux(s_etat_processus);                                      destruction_queue_signaux(s_etat_processus);
   
 #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                     stackoverflow_deinstall_handler();                                      stackoverflow_deinstall_handler();
Line 2392  rplinit(int argc, char *argv[], char *en Line 2143  rplinit(int argc, char *argv[], char *en
 #                                   ifndef SEMAPHORES_NOMMES  #                                   ifndef SEMAPHORES_NOMMES
                                     sem_post(&((*s_etat_processus)                                      sem_post(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
                                     sem_post(&semaphore_gestionnaires_signaux);  
                                     sem_destroy(  
                                             &semaphore_gestionnaires_signaux);  
                                     sem_destroy(&((*s_etat_processus)                                      sem_destroy(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
 #                                   else  #                                   else
                                     sem_post((*s_etat_processus)                                      sem_post((*s_etat_processus)
                                             .semaphore_fork);                                              .semaphore_fork);
                                     sem_post(semaphore_gestionnaires_signaux);  
                                     sem_destroy2(  
                                             semaphore_gestionnaires_signaux,  
                                             getpid(), SEM_SIGNAUX);  
                                     sem_destroy3((*s_etat_processus)                                      sem_destroy3((*s_etat_processus)
                                             .semphore_fork, getpid(),                                              .semaphore_fork, getpid(),
                                             pthread_self(), SEM_FORK);                                              pthread_self(), SEM_FORK);
 #                                   endif  #                                   endif
   
                                     liberation_contexte_cas(s_etat_processus);                                      liberation_contexte_cas(s_etat_processus);
                                     liberation_queue_signaux(s_etat_processus);                                      destruction_queue_signaux(s_etat_processus);
   
 #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                     stackoverflow_deinstall_handler();                                      stackoverflow_deinstall_handler();
Line 2445  rplinit(int argc, char *argv[], char *en Line 2189  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 2511  rplinit(int argc, char *argv[], char *en Line 2250  rplinit(int argc, char *argv[], char *en
 #                                       ifndef SEMAPHORES_NOMMES  #                                       ifndef SEMAPHORES_NOMMES
                                         sem_post(&((*s_etat_processus)                                          sem_post(&((*s_etat_processus)
                                                 .semaphore_fork));                                                  .semaphore_fork));
                                         sem_post(  
                                                 &semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy(  
                                                 &semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy(&((*s_etat_processus)                                          sem_destroy(&((*s_etat_processus)
                                                 .semaphore_fork));                                                  .semaphore_fork));
 #                                       else  #                                       else
                                         sem_post((*s_etat_processus)                                          sem_post((*s_etat_processus)
                                                 .semaphore_fork);                                                  .semaphore_fork);
                                         sem_post(  
                                                 semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy2(  
                                                 semaphore_gestionnaires_signaux,  
                                                 getpid(), SEM_SIGNAUX);  
                                         sem_destroy3((*s_etat_processus)                                          sem_destroy3((*s_etat_processus)
                                                 .semphore_fork, getpid(),                                                  .semaphore_fork, getpid(),
                                                 pthread_self(), SEM_FORK);                                                  pthread_self(), SEM_FORK);
 #                                       endif  #                                       endif
   
                                         liberation_contexte_cas(                                          liberation_contexte_cas(
                                                 s_etat_processus);                                                  s_etat_processus);
                                         liberation_queue_signaux(                                          destruction_queue_signaux(
                                                 s_etat_processus);                                                  s_etat_processus);
   
 #                                       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                                       ifdef HAVE_STACK_OVERFLOW_RECOVERY
Line 2567  rplinit(int argc, char *argv[], char *en Line 2294  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 2611  rplinit(int argc, char *argv[], char *en Line 2333  rplinit(int argc, char *argv[], char *en
                             {                              {
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                               else  #                               else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 2740  rplinit(int argc, char *argv[], char *en Line 2457  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus)                      sem_destroy(&((*s_etat_processus)
                             .semaphore_fork));                              .semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 2783  rplinit(int argc, char *argv[], char *en Line 2495  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus)                      sem_destroy(&((*s_etat_processus)
                             .semaphore_fork));                              .semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 2832  rplinit(int argc, char *argv[], char *en Line 2539  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus)                      sem_destroy(&((*s_etat_processus)
                             .semaphore_fork));                              .semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 2876  rplinit(int argc, char *argv[], char *en Line 2578  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus)                      sem_destroy(&((*s_etat_processus)
                             .semaphore_fork));                              .semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 2932  rplinit(int argc, char *argv[], char *en Line 2629  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus)                      sem_destroy(&((*s_etat_processus)
                             .semaphore_fork));                              .semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 2986  rplinit(int argc, char *argv[], char *en Line 2678  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus)                      sem_destroy(&((*s_etat_processus)
                             .semaphore_fork));                              .semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 3057  rplinit(int argc, char *argv[], char *en Line 2744  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus)                      sem_destroy(&((*s_etat_processus)
                             .semaphore_fork));                              .semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 3101  rplinit(int argc, char *argv[], char *en Line 2783  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus)                      sem_destroy(&((*s_etat_processus)
                             .semaphore_fork));                              .semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 3144  rplinit(int argc, char *argv[], char *en Line 2821  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus)                      sem_destroy(&((*s_etat_processus)
                             .semaphore_fork));                              .semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 3188  rplinit(int argc, char *argv[], char *en Line 2860  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus)                      sem_destroy(&((*s_etat_processus)
                             .semaphore_fork));                              .semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 3231  rplinit(int argc, char *argv[], char *en Line 2898  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus)                      sem_destroy(&((*s_etat_processus)
                             .semaphore_fork));                              .semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 3297  rplinit(int argc, char *argv[], char *en Line 2959  rplinit(int argc, char *argv[], char *en
         {          {
 #           ifndef SEMAPHORES_NOMMES  #           ifndef SEMAPHORES_NOMMES
                 sem_post(&((*s_etat_processus).semaphore_fork));                  sem_post(&((*s_etat_processus).semaphore_fork));
                 sem_post(&semaphore_gestionnaires_signaux);  
                 sem_destroy(&semaphore_gestionnaires_signaux);  
                 sem_destroy(&((*s_etat_processus).semaphore_fork));                  sem_destroy(&((*s_etat_processus).semaphore_fork));
 #           else  #           else
                 sem_post((*s_etat_processus).semaphore_fork);                  sem_post((*s_etat_processus).semaphore_fork);
                 sem_post(semaphore_gestionnaires_signaux);                  sem_destroy3((*s_etat_processus).semaphore_fork,
                 sem_destroy2(semaphore_gestionnaires_signaux,  
                         getpid(), SEM_SIGNAUX);  
                 sem_destroy3((*s_etat_processus).semphore_fork,  
                         getpid(), pthread_self(), SEM_FORK);                          getpid(), pthread_self(), SEM_FORK);
 #           endif  #           endif
   
             liberation_contexte_cas(s_etat_processus);              liberation_contexte_cas(s_etat_processus);
             liberation_queue_signaux(s_etat_processus);              destruction_queue_signaux(s_etat_processus);
   
 #           ifdef HAVE_STACK_OVERFLOW_RECOVERY  #           ifdef HAVE_STACK_OVERFLOW_RECOVERY
                 stackoverflow_deinstall_handler();                  stackoverflow_deinstall_handler();
Line 3357  rplinit(int argc, char *argv[], char *en Line 3014  rplinit(int argc, char *argv[], char *en
         {          {
 #           ifndef SEMAPHORES_NOMMES  #           ifndef SEMAPHORES_NOMMES
                 sem_post(&((*s_etat_processus).semaphore_fork));                  sem_post(&((*s_etat_processus).semaphore_fork));
                 sem_post(&semaphore_gestionnaires_signaux);  
                 sem_destroy(&semaphore_gestionnaires_signaux);  
                 sem_destroy(&((*s_etat_processus).semaphore_fork));                  sem_destroy(&((*s_etat_processus).semaphore_fork));
 #           else  #           else
                 sem_post((*s_etat_processus).semaphore_fork);                  sem_post((*s_etat_processus).semaphore_fork);
                 sem_post(semaphore_gestionnaires_signaux);                  sem_destroy3((*s_etat_processus).semaphore_fork,
                 sem_destroy2(semaphore_gestionnaires_signaux,  
                         getpid(), SEM_SIGNAUX);  
                 sem_destroy3((*s_etat_processus).semphore_fork,  
                         getpid(), pthread_self(), SEM_FORK);                          getpid(), pthread_self(), SEM_FORK);
 #           endif  #           endif
   
             liberation_contexte_cas(s_etat_processus);              liberation_contexte_cas(s_etat_processus);
             liberation_queue_signaux(s_etat_processus);              destruction_queue_signaux(s_etat_processus);
   
 #           ifdef HAVE_STACK_OVERFLOW_RECOVERY  #           ifdef HAVE_STACK_OVERFLOW_RECOVERY
                 stackoverflow_deinstall_handler();                  stackoverflow_deinstall_handler();
Line 3624  rplinit(int argc, char *argv[], char *en Line 3276  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus).semaphore_fork));                      sem_destroy(&((*s_etat_processus).semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 3667  rplinit(int argc, char *argv[], char *en Line 3314  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus).semaphore_fork));                      sem_destroy(&((*s_etat_processus).semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 3724  rplinit(int argc, char *argv[], char *en Line 3366  rplinit(int argc, char *argv[], char *en
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     sem_post(&((*s_etat_processus).semaphore_fork));                      sem_post(&((*s_etat_processus).semaphore_fork));
                     sem_post(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&semaphore_gestionnaires_signaux);  
                     sem_destroy(&((*s_etat_processus).semaphore_fork));                      sem_destroy(&((*s_etat_processus).semaphore_fork));
 #               else  #               else
                     sem_post((*s_etat_processus).semaphore_fork);                      sem_post((*s_etat_processus).semaphore_fork);
                     sem_post(semaphore_gestionnaires_signaux);                      sem_destroy3((*s_etat_processus).semaphore_fork,
                     sem_destroy2(semaphore_gestionnaires_signaux,  
                             getpid(), SEM_SIGNAUX);  
                     sem_destroy3((*s_etat_processus).semphore_fork,  
                             getpid(), pthread_self(), SEM_FORK);                              getpid(), pthread_self(), SEM_FORK);
 #               endif  #               endif
   
                 liberation_contexte_cas(s_etat_processus);                  liberation_contexte_cas(s_etat_processus);
                 liberation_queue_signaux(s_etat_processus);                  destruction_queue_signaux(s_etat_processus);
   
 #               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                     stackoverflow_deinstall_handler();                      stackoverflow_deinstall_handler();
Line 3814  rplinit(int argc, char *argv[], char *en Line 3451  rplinit(int argc, char *argv[], char *en
                     {                      {
 #                       ifndef SEMAPHORES_NOMMES  #                       ifndef SEMAPHORES_NOMMES
                             sem_post(&((*s_etat_processus).semaphore_fork));                              sem_post(&((*s_etat_processus).semaphore_fork));
                             sem_post(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&((*s_etat_processus).semaphore_fork));                              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #                       else  #                       else
                             sem_post((*s_etat_processus).semaphore_fork);                              sem_post((*s_etat_processus).semaphore_fork);
                             sem_post(semaphore_gestionnaires_signaux);                              sem_destroy3((*s_etat_processus).semaphore_fork,
                             sem_destroy2(semaphore_gestionnaires_signaux,  
                                     getpid(), SEM_SIGNAUX);  
                             sem_destroy3((*s_etat_processus).semphore_fork,  
                                     getpid(), pthread_self(), SEM_FORK);                                      getpid(), pthread_self(), SEM_FORK);
 #                       endif  #                       endif
   
                         liberation_contexte_cas(s_etat_processus);                          liberation_contexte_cas(s_etat_processus);
                         liberation_queue_signaux(s_etat_processus);                          destruction_queue_signaux(s_etat_processus);
   
 #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY
                             stackoverflow_deinstall_handler();                              stackoverflow_deinstall_handler();
Line 3866  rplinit(int argc, char *argv[], char *en Line 3498  rplinit(int argc, char *argv[], char *en
                     {                      {
 #                       ifndef SEMAPHORES_NOMMES  #                       ifndef SEMAPHORES_NOMMES
                             sem_post(&((*s_etat_processus).semaphore_fork));                              sem_post(&((*s_etat_processus).semaphore_fork));
                             sem_post(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&((*s_etat_processus).semaphore_fork));                              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #                       else  #                       else
                             sem_post((*s_etat_processus).semaphore_fork);                              sem_post((*s_etat_processus).semaphore_fork);
                             sem_post(semaphore_gestionnaires_signaux);                              sem_destroy3((*s_etat_processus).semaphore_fork,
                             sem_destroy2(semaphore_gestionnaires_signaux,  
                                     getpid(), SEM_SIGNAUX);  
                             sem_destroy3((*s_etat_processus).semphore_fork,  
                                     getpid(), pthread_self(), SEM_FORK);                                      getpid(), pthread_self(), SEM_FORK);
 #                       endif  #                       endif
   
                         liberation_contexte_cas(s_etat_processus);                          liberation_contexte_cas(s_etat_processus);
                         liberation_queue_signaux(s_etat_processus);                          destruction_queue_signaux(s_etat_processus);
   
 #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY
                             stackoverflow_deinstall_handler();                              stackoverflow_deinstall_handler();
Line 3946  rplinit(int argc, char *argv[], char *en Line 3573  rplinit(int argc, char *argv[], char *en
                     {                      {
 #                       ifndef SEMAPHORES_NOMMES  #                       ifndef SEMAPHORES_NOMMES
                             sem_post(&((*s_etat_processus).semaphore_fork));                              sem_post(&((*s_etat_processus).semaphore_fork));
                             sem_post(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&((*s_etat_processus).semaphore_fork));                              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #                       else  #                       else
                             sem_post((*s_etat_processus).semaphore_fork);                              sem_post((*s_etat_processus).semaphore_fork);
                             sem_post(semaphore_gestionnaires_signaux);                              sem_destroy3((*s_etat_processus).semaphore_fork,
                             sem_destroy2(semaphore_gestionnaires_signaux,  
                                     getpid(), SEM_SIGNAUX);  
                             sem_destroy3((*s_etat_processus).semphore_fork,  
                                     getpid(), pthread_self(), SEM_FORK);                                      getpid(), pthread_self(), SEM_FORK);
 #                       endif  #                       endif
   
                         liberation_contexte_cas(s_etat_processus);                          liberation_contexte_cas(s_etat_processus);
                         liberation_queue_signaux(s_etat_processus);                          destruction_queue_signaux(s_etat_processus);
   
 #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY
                             stackoverflow_deinstall_handler();                              stackoverflow_deinstall_handler();
Line 4002  rplinit(int argc, char *argv[], char *en Line 3624  rplinit(int argc, char *argv[], char *en
                     {                      {
 #                       ifndef SEMAPHORES_NOMMES  #                       ifndef SEMAPHORES_NOMMES
                             sem_post(&((*s_etat_processus).semaphore_fork));                              sem_post(&((*s_etat_processus).semaphore_fork));
                             sem_post(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&((*s_etat_processus).semaphore_fork));                              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #                       else  #                       else
                             sem_post((*s_etat_processus).semaphore_fork);                              sem_post((*s_etat_processus).semaphore_fork);
                             sem_post(semaphore_gestionnaires_signaux);                              sem_destroy3((*s_etat_processus).semaphore_fork,
                             sem_destroy2(semaphore_gestionnaires_signaux,  
                                     getpid(), SEM_SIGNAUX);  
                             sem_destroy3((*s_etat_processus).semphore_fork,  
                                     getpid(), pthread_self(), SEM_FORK);                                      getpid(), pthread_self(), SEM_FORK);
 #                       endif  #                       endif
   
                         liberation_contexte_cas(s_etat_processus);                          liberation_contexte_cas(s_etat_processus);
                         liberation_queue_signaux(s_etat_processus);                          destruction_queue_signaux(s_etat_processus);
   
 #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY
                             stackoverflow_deinstall_handler();                              stackoverflow_deinstall_handler();
Line 4098  rplinit(int argc, char *argv[], char *en Line 3715  rplinit(int argc, char *argv[], char *en
                         {                          {
 #                           ifndef SEMAPHORES_NOMMES  #                           ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                           else  #                           else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                           endif  #                           endif
   
                             liberation_contexte_cas(s_etat_processus);                              liberation_contexte_cas(s_etat_processus);
                             liberation_queue_signaux(s_etat_processus);                              destruction_queue_signaux(s_etat_processus);
   
 #                           ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                           ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 4158  rplinit(int argc, char *argv[], char *en Line 3770  rplinit(int argc, char *argv[], char *en
                     {                      {
 #                       ifndef SEMAPHORES_NOMMES  #                       ifndef SEMAPHORES_NOMMES
                             sem_post(&((*s_etat_processus).semaphore_fork));                              sem_post(&((*s_etat_processus).semaphore_fork));
                             sem_post(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&((*s_etat_processus).semaphore_fork));                              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #                       else  #                       else
                             sem_post((*s_etat_processus).semaphore_fork);                              sem_post((*s_etat_processus).semaphore_fork);
                             sem_post(semaphore_gestionnaires_signaux);                              sem_destroy3((*s_etat_processus).semaphore_fork,
                             sem_destroy2(semaphore_gestionnaires_signaux,  
                                     getpid(), SEM_SIGNAUX);  
                             sem_destroy3((*s_etat_processus).semphore_fork,  
                                     getpid(), pthread_self(), SEM_FORK);                                      getpid(), pthread_self(), SEM_FORK);
 #                       endif  #                       endif
   
                         liberation_contexte_cas(s_etat_processus);                          liberation_contexte_cas(s_etat_processus);
                         liberation_queue_signaux(s_etat_processus);                          destruction_queue_signaux(s_etat_processus);
   
 #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY
                             stackoverflow_deinstall_handler();                              stackoverflow_deinstall_handler();
Line 4245  rplinit(int argc, char *argv[], char *en Line 3852  rplinit(int argc, char *argv[], char *en
                     {                      {
 #                       ifndef SEMAPHORES_NOMMES  #                       ifndef SEMAPHORES_NOMMES
                             sem_post(&((*s_etat_processus).semaphore_fork));                              sem_post(&((*s_etat_processus).semaphore_fork));
                             sem_post(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&((*s_etat_processus).semaphore_fork));                              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #                       else  #                       else
                             sem_post((*s_etat_processus).semaphore_fork);                              sem_post((*s_etat_processus).semaphore_fork);
                             sem_post(semaphore_gestionnaires_signaux);                              sem_destroy3((*s_etat_processus).semaphore_fork,
                             sem_destroy2(semaphore_gestionnaires_signaux,  
                                     getpid(), SEM_SIGNAUX);  
                             sem_destroy3((*s_etat_processus).semphore_fork,  
                                     getpid(), pthread_self(), SEM_FORK);                                      getpid(), pthread_self(), SEM_FORK);
 #                       endif  #                       endif
   
                         liberation_contexte_cas(s_etat_processus);                          liberation_contexte_cas(s_etat_processus);
                         liberation_queue_signaux(s_etat_processus);                          destruction_queue_signaux(s_etat_processus);
   
 #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY
                             stackoverflow_deinstall_handler();                              stackoverflow_deinstall_handler();
Line 4293  rplinit(int argc, char *argv[], char *en Line 3895  rplinit(int argc, char *argv[], char *en
                     {                      {
 #                       ifndef SEMAPHORES_NOMMES  #                       ifndef SEMAPHORES_NOMMES
                             sem_post(&((*s_etat_processus).semaphore_fork));                              sem_post(&((*s_etat_processus).semaphore_fork));
                             sem_post(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&((*s_etat_processus).semaphore_fork));                              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #                       else  #                       else
                             sem_post((*s_etat_processus).semaphore_fork);                              sem_post((*s_etat_processus).semaphore_fork);
                             sem_post(semaphore_gestionnaires_signaux);                              sem_destroy3((*s_etat_processus).semaphore_fork,
                             sem_destroy2(semaphore_gestionnaires_signaux,  
                                     getpid(), SEM_SIGNAUX);  
                             sem_destroy3((*s_etat_processus).semphore_fork,  
                                     getpid(), pthread_self(), SEM_FORK);                                      getpid(), pthread_self(), SEM_FORK);
 #                       endif  #                       endif
   
                         liberation_contexte_cas(s_etat_processus);                          liberation_contexte_cas(s_etat_processus);
                         liberation_queue_signaux(s_etat_processus);                          destruction_queue_signaux(s_etat_processus);
   
 #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY
                             stackoverflow_deinstall_handler();                              stackoverflow_deinstall_handler();
Line 4342  rplinit(int argc, char *argv[], char *en Line 3939  rplinit(int argc, char *argv[], char *en
                     {                      {
 #                       ifndef SEMAPHORES_NOMMES  #                       ifndef SEMAPHORES_NOMMES
                             sem_post(&((*s_etat_processus).semaphore_fork));                              sem_post(&((*s_etat_processus).semaphore_fork));
                             sem_post(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&((*s_etat_processus).semaphore_fork));                              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #                       else  #                       else
                             sem_post((*s_etat_processus).semaphore_fork);                              sem_post((*s_etat_processus).semaphore_fork);
                             sem_post(semaphore_gestionnaires_signaux);                              sem_destroy3((*s_etat_processus).semaphore_fork,
                             sem_destroy2(semaphore_gestionnaires_signaux,  
                                     getpid(), SEM_SIGNAUX);  
                             sem_destroy3((*s_etat_processus).semphore_fork,  
                                     getpid(), pthread_self(), SEM_FORK);                                      getpid(), pthread_self(), SEM_FORK);
 #                       endif  #                       endif
   
                         liberation_contexte_cas(s_etat_processus);                          liberation_contexte_cas(s_etat_processus);
                         liberation_queue_signaux(s_etat_processus);                          destruction_queue_signaux(s_etat_processus);
   
 #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY
                             stackoverflow_deinstall_handler();                              stackoverflow_deinstall_handler();
Line 4390  rplinit(int argc, char *argv[], char *en Line 3982  rplinit(int argc, char *argv[], char *en
                     {                      {
 #                       ifndef SEMAPHORES_NOMMES  #                       ifndef SEMAPHORES_NOMMES
                             sem_post(&((*s_etat_processus).semaphore_fork));                              sem_post(&((*s_etat_processus).semaphore_fork));
                             sem_post(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&((*s_etat_processus).semaphore_fork));                              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #                       else  #                       else
                             sem_post((*s_etat_processus).semaphore_fork);                              sem_post((*s_etat_processus).semaphore_fork);
                             sem_post(semaphore_gestionnaires_signaux);                              sem_destroy3((*s_etat_processus).semaphore_fork,
                             sem_destroy2(semaphore_gestionnaires_signaux,  
                                     getpid(), SEM_SIGNAUX);  
                             sem_destroy3((*s_etat_processus).semphore_fork,  
                                     getpid(), pthread_self(), SEM_FORK);                                      getpid(), pthread_self(), SEM_FORK);
 #                       endif  #                       endif
   
                         liberation_contexte_cas(s_etat_processus);                          liberation_contexte_cas(s_etat_processus);
                         liberation_queue_signaux(s_etat_processus);                          destruction_queue_signaux(s_etat_processus);
   
 #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY
                             stackoverflow_deinstall_handler();                              stackoverflow_deinstall_handler();
Line 4443  rplinit(int argc, char *argv[], char *en Line 4030  rplinit(int argc, char *argv[], char *en
                     {                      {
 #                       ifndef SEMAPHORES_NOMMES  #                       ifndef SEMAPHORES_NOMMES
                             sem_post(&((*s_etat_processus).semaphore_fork));                              sem_post(&((*s_etat_processus).semaphore_fork));
                             sem_post(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&semaphore_gestionnaires_signaux);  
                             sem_destroy(&((*s_etat_processus).semaphore_fork));                              sem_destroy(&((*s_etat_processus).semaphore_fork));
 #                       else  #                       else
                             sem_post((*s_etat_processus).semaphore_fork);                              sem_post((*s_etat_processus).semaphore_fork);
                             sem_post(semaphore_gestionnaires_signaux);                              sem_destroy3((*s_etat_processus).semaphore_fork,
                             sem_destroy2(semaphore_gestionnaires_signaux,  
                                     getpid(), SEM_SIGNAUX);  
                             sem_destroy3((*s_etat_processus).semphore_fork,  
                                     getpid(), pthread_self(), SEM_FORK);                                      getpid(), pthread_self(), SEM_FORK);
 #                       endif  #                       endif
   
                         liberation_contexte_cas(s_etat_processus);                          liberation_contexte_cas(s_etat_processus);
                         liberation_queue_signaux(s_etat_processus);                          destruction_queue_signaux(s_etat_processus);
   
 #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                       ifdef HAVE_STACK_OVERFLOW_RECOVERY
                             stackoverflow_deinstall_handler();                              stackoverflow_deinstall_handler();
Line 4511  rplinit(int argc, char *argv[], char *en Line 4093  rplinit(int argc, char *argv[], char *en
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                     sem_post(&((*s_etat_processus)                                      sem_post(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
                                     sem_post(&semaphore_gestionnaires_signaux);  
                                     sem_destroy(  
                                             &semaphore_gestionnaires_signaux);  
                                     sem_destroy(&((*s_etat_processus)                                      sem_destroy(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
 #                               else  #                               else
                                     sem_post((*s_etat_processus)                                      sem_post((*s_etat_processus)
                                             .semaphore_fork);                                              .semaphore_fork);
                                     sem_post(semaphore_gestionnaires_signaux);  
                                     sem_destroy2(  
                                             semaphore_gestionnaires_signaux,  
                                             getpid(), SEM_SIGNAUX);  
                                     sem_destroy3((*s_etat_processus)                                      sem_destroy3((*s_etat_processus)
                                             .semphore_fork,                                              .semaphore_fork,
                                             getpid(), pthread_self(), SEM_FORK);                                              getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                     stackoverflow_deinstall_handler();                                      stackoverflow_deinstall_handler();
Line 4581  rplinit(int argc, char *argv[], char *en Line 4156  rplinit(int argc, char *argv[], char *en
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                     sem_post(&((*s_etat_processus)                                      sem_post(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
                                     sem_post(&semaphore_gestionnaires_signaux);  
                                     sem_destroy(  
                                             &semaphore_gestionnaires_signaux);  
                                     sem_destroy(&((*s_etat_processus)                                      sem_destroy(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
 #                               else  #                               else
                                     sem_post((*s_etat_processus)                                      sem_post((*s_etat_processus)
                                             .semaphore_fork);                                              .semaphore_fork);
                                     sem_post(semaphore_gestionnaires_signaux);  
                                     sem_destroy2(  
                                             semaphore_gestionnaires_signaux,  
                                             getpid(), SEM_SIGNAUX);  
                                     sem_destroy3((*s_etat_processus)                                      sem_destroy3((*s_etat_processus)
                                             .semphore_fork,                                              .semaphore_fork,
                                             getpid(), pthread_self(), SEM_FORK);                                              getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                     stackoverflow_deinstall_handler();                                      stackoverflow_deinstall_handler();
Line 4632  rplinit(int argc, char *argv[], char *en Line 4200  rplinit(int argc, char *argv[], char *en
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                     sem_post(&((*s_etat_processus)                                      sem_post(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
                                     sem_post(&semaphore_gestionnaires_signaux);  
                                     sem_destroy(  
                                             &semaphore_gestionnaires_signaux);  
                                     sem_destroy(&((*s_etat_processus)                                      sem_destroy(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
 #                               else  #                               else
                                     sem_post((*s_etat_processus)                                      sem_post((*s_etat_processus)
                                             .semaphore_fork);                                              .semaphore_fork);
                                     sem_post(semaphore_gestionnaires_signaux);  
                                     sem_destroy2(  
                                             semaphore_gestionnaires_signaux,  
                                             getpid(), SEM_SIGNAUX);  
                                     sem_destroy3((*s_etat_processus)                                      sem_destroy3((*s_etat_processus)
                                             .semphore_fork,                                              .semaphore_fork,
                                             getpid(), pthread_self(), SEM_FORK);                                              getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                     stackoverflow_deinstall_handler();                                      stackoverflow_deinstall_handler();
Line 4682  rplinit(int argc, char *argv[], char *en Line 4243  rplinit(int argc, char *argv[], char *en
                         (*s_etat_processus).definitions_chainees = tampon;                          (*s_etat_processus).definitions_chainees = tampon;
                         (*s_etat_processus).position_courante = 0;                          (*s_etat_processus).position_courante = 0;
   
                           (*s_etat_processus).type_en_cours = NON;
                         recherche_type(s_etat_processus);                          recherche_type(s_etat_processus);
   
                         if ((*s_etat_processus).erreur_systeme != d_es)                          if ((*s_etat_processus).erreur_systeme != d_es)
                         {                          {
 #                           ifndef SEMAPHORES_NOMMES  #                           ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                           else  #                           else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                           endif  #                           endif
   
                             liberation_contexte_cas(s_etat_processus);                              liberation_contexte_cas(s_etat_processus);
                             liberation_queue_signaux(s_etat_processus);                              destruction_queue_signaux(s_etat_processus);
   
 #                           ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                           ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 4748  rplinit(int argc, char *argv[], char *en Line 4305  rplinit(int argc, char *argv[], char *en
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                     sem_post(&((*s_etat_processus)                                      sem_post(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
                                     sem_post(&semaphore_gestionnaires_signaux);  
                                     sem_destroy(  
                                             &semaphore_gestionnaires_signaux);  
                                     sem_destroy(&((*s_etat_processus)                                      sem_destroy(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
 #                               else  #                               else
                                     sem_post((*s_etat_processus)                                      sem_post((*s_etat_processus)
                                             .semaphore_fork);                                              .semaphore_fork);
                                     sem_post(semaphore_gestionnaires_signaux);  
                                     sem_destroy2(  
                                             semaphore_gestionnaires_signaux,  
                                             getpid(), SEM_SIGNAUX);  
                                     sem_destroy3((*s_etat_processus)                                      sem_destroy3((*s_etat_processus)
                                             .semphore_fork,                                              .semaphore_fork,
                                             getpid(), pthread_self(), SEM_FORK);                                              getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                     stackoverflow_deinstall_handler();                                      stackoverflow_deinstall_handler();
Line 4800  rplinit(int argc, char *argv[], char *en Line 4350  rplinit(int argc, char *argv[], char *en
   
 #                           ifndef SEMAPHORES_NOMMES  #                           ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                           else  #                           else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                           endif  #                           endif
   
                             liberation_contexte_cas(s_etat_processus);                              liberation_contexte_cas(s_etat_processus);
                             liberation_queue_signaux(s_etat_processus);                              destruction_queue_signaux(s_etat_processus);
   
 #                           ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                           ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 4840  rplinit(int argc, char *argv[], char *en Line 4385  rplinit(int argc, char *argv[], char *en
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                     sem_post(&((*s_etat_processus)                                      sem_post(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
                                     sem_post(&semaphore_gestionnaires_signaux);  
                                     sem_destroy(  
                                             &semaphore_gestionnaires_signaux);  
                                     sem_destroy(&((*s_etat_processus)                                      sem_destroy(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
 #                               else  #                               else
                                     sem_post((*s_etat_processus)                                      sem_post((*s_etat_processus)
                                             .semaphore_fork);                                              .semaphore_fork);
                                     sem_post(semaphore_gestionnaires_signaux);  
                                     sem_destroy2(  
                                             semaphore_gestionnaires_signaux,  
                                             getpid(), SEM_SIGNAUX);  
                                     sem_destroy3((*s_etat_processus)                                      sem_destroy3((*s_etat_processus)
                                             .semphore_fork,                                              .semaphore_fork,
                                             getpid(), pthread_self(), SEM_FORK);                                              getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                     stackoverflow_deinstall_handler();                                      stackoverflow_deinstall_handler();
Line 4893  rplinit(int argc, char *argv[], char *en Line 4431  rplinit(int argc, char *argv[], char *en
   
 #                           ifndef SEMAPHORES_NOMMES  #                           ifndef SEMAPHORES_NOMMES
                                 sem_post(&((*s_etat_processus).semaphore_fork));                                  sem_post(&((*s_etat_processus).semaphore_fork));
                                 sem_post(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&semaphore_gestionnaires_signaux);  
                                 sem_destroy(&((*s_etat_processus)                                  sem_destroy(&((*s_etat_processus)
                                         .semaphore_fork));                                          .semaphore_fork));
 #                           else  #                           else
                                 sem_post((*s_etat_processus).semaphore_fork);                                  sem_post((*s_etat_processus).semaphore_fork);
                                 sem_post(semaphore_gestionnaires_signaux);                                  sem_destroy3((*s_etat_processus).semaphore_fork,
                                 sem_destroy2(semaphore_gestionnaires_signaux,  
                                         getpid(), SEM_SIGNAUX);  
                                 sem_destroy3((*s_etat_processus).semphore_fork,  
                                         getpid(), pthread_self(), SEM_FORK);                                          getpid(), pthread_self(), SEM_FORK);
 #                           endif  #                           endif
   
                             liberation_contexte_cas(s_etat_processus);                              liberation_contexte_cas(s_etat_processus);
                             liberation_queue_signaux(s_etat_processus);                              destruction_queue_signaux(s_etat_processus);
   
 #                           ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                           ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                 stackoverflow_deinstall_handler();                                  stackoverflow_deinstall_handler();
Line 4936  rplinit(int argc, char *argv[], char *en Line 4469  rplinit(int argc, char *argv[], char *en
 #                                   ifndef SEMAPHORES_NOMMES  #                                   ifndef SEMAPHORES_NOMMES
                                         sem_post(&((*s_etat_processus)                                          sem_post(&((*s_etat_processus)
                                                 .semaphore_fork));                                                  .semaphore_fork));
                                         sem_post(  
                                                 &semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy(  
                                                 &semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy(&((*s_etat_processus)                                          sem_destroy(&((*s_etat_processus)
                                                 .semaphore_fork));                                                  .semaphore_fork));
 #                                   else  #                                   else
                                         sem_post((*s_etat_processus)                                          sem_post((*s_etat_processus)
                                                 .semaphore_fork);                                                  .semaphore_fork);
                                         sem_post(  
                                                 semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy2(  
                                                 semaphore_gestionnaires_signaux,  
                                                 getpid(), SEM_SIGNAUX);  
                                         sem_destroy3((*s_etat_processus)                                          sem_destroy3((*s_etat_processus)
                                                 .semphore_fork, getpid(),                                                  .semaphore_fork, getpid(),
                                                 pthread_self(), SEM_FORK);                                                  pthread_self(), SEM_FORK);
 #                                   endif  #                                   endif
   
                                     liberation_contexte_cas(s_etat_processus);                                      liberation_contexte_cas(s_etat_processus);
                                     liberation_queue_signaux(s_etat_processus);                                      destruction_queue_signaux(s_etat_processus);
   
 #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                         stackoverflow_deinstall_handler();                                          stackoverflow_deinstall_handler();
Line 4995  rplinit(int argc, char *argv[], char *en Line 4516  rplinit(int argc, char *argv[], char *en
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                     sem_post(&((*s_etat_processus)                                      sem_post(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
                                     sem_post(&semaphore_gestionnaires_signaux);  
                                     sem_destroy(  
                                             &semaphore_gestionnaires_signaux);  
                                     sem_destroy(&((*s_etat_processus)                                      sem_destroy(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
 #                               else  #                               else
                                     sem_post((*s_etat_processus)                                      sem_post((*s_etat_processus)
                                             .semaphore_fork);                                              .semaphore_fork);
                                     sem_post(semaphore_gestionnaires_signaux);  
                                     sem_destroy2(  
                                             semaphore_gestionnaires_signaux,  
                                             getpid(), SEM_SIGNAUX);  
                                     sem_destroy3((*s_etat_processus)                                      sem_destroy3((*s_etat_processus)
                                             .semphore_fork,                                              .semaphore_fork,
                                             getpid(), pthread_self(), SEM_FORK);                                              getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                     stackoverflow_deinstall_handler();                                      stackoverflow_deinstall_handler();
Line 5039  rplinit(int argc, char *argv[], char *en Line 4553  rplinit(int argc, char *argv[], char *en
 #                                   ifndef SEMAPHORES_NOMMES  #                                   ifndef SEMAPHORES_NOMMES
                                         sem_post(&((*s_etat_processus)                                          sem_post(&((*s_etat_processus)
                                                 .semaphore_fork));                                                  .semaphore_fork));
                                         sem_post(  
                                                 &semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy(  
                                                 &semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy(&((*s_etat_processus)                                          sem_destroy(&((*s_etat_processus)
                                                 .semaphore_fork));                                                  .semaphore_fork));
 #                                   else  #                                   else
                                         sem_post((*s_etat_processus)                                          sem_post((*s_etat_processus)
                                                 .semaphore_fork);                                                  .semaphore_fork);
                                         sem_post(  
                                                 semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy2(  
                                                 semaphore_gestionnaires_signaux,  
                                                 getpid(), SEM_SIGNAUX);  
                                         sem_destroy3((*s_etat_processus)                                          sem_destroy3((*s_etat_processus)
                                                 .semphore_fork, getpid(),                                                  .semaphore_fork, getpid(),
                                                 pthread_self(), SEM_FORK);                                                  pthread_self(), SEM_FORK);
 #                                   endif  #                                   endif
   
                                     liberation_contexte_cas(s_etat_processus);                                      liberation_contexte_cas(s_etat_processus);
                                     liberation_queue_signaux(s_etat_processus);                                      destruction_queue_signaux(s_etat_processus);
   
 #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                         stackoverflow_deinstall_handler();                                          stackoverflow_deinstall_handler();
Line 5098  rplinit(int argc, char *argv[], char *en Line 4600  rplinit(int argc, char *argv[], char *en
 #                               ifndef SEMAPHORES_NOMMES  #                               ifndef SEMAPHORES_NOMMES
                                     sem_post(&((*s_etat_processus)                                      sem_post(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
                                     sem_post(&semaphore_gestionnaires_signaux);  
                                     sem_destroy(  
                                             &semaphore_gestionnaires_signaux);  
                                     sem_destroy(&((*s_etat_processus)                                      sem_destroy(&((*s_etat_processus)
                                             .semaphore_fork));                                              .semaphore_fork));
 #                               else  #                               else
                                     sem_post((*s_etat_processus)                                      sem_post((*s_etat_processus)
                                             .semaphore_fork);                                              .semaphore_fork);
                                     sem_post(semaphore_gestionnaires_signaux);  
                                     sem_destroy2(  
                                             semaphore_gestionnaires_signaux,  
                                             getpid(), SEM_SIGNAUX);  
                                     sem_destroy3((*s_etat_processus)                                      sem_destroy3((*s_etat_processus)
                                             .semphore_fork,                                              .semaphore_fork,
                                             getpid(), pthread_self(), SEM_FORK);                                              getpid(), pthread_self(), SEM_FORK);
 #                               endif  #                               endif
   
                                 liberation_contexte_cas(s_etat_processus);                                  liberation_contexte_cas(s_etat_processus);
                                 liberation_queue_signaux(s_etat_processus);                                  destruction_queue_signaux(s_etat_processus);
   
 #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                               ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                     stackoverflow_deinstall_handler();                                      stackoverflow_deinstall_handler();
Line 5467  rplinit(int argc, char *argv[], char *en Line 4962  rplinit(int argc, char *argv[], char *en
                                         (*(*((struct_processus_fils *)                                          (*(*((struct_processus_fils *)
                                         (*(*((struct_liste_chainee *)                                          (*(*((struct_liste_chainee *)
                                         l_element_courant)).donnee).objet))                                          l_element_courant)).donnee).objet))
                                         .thread).pid, rpl_sigurg);                                          .thread).pid, rpl_sigurg, d_faux);
                             }                              }
                             else                              else
                             {                              {
Line 5478  rplinit(int argc, char *argv[], char *en Line 4973  rplinit(int argc, char *argv[], char *en
                                             (*(*((struct_processus_fils *)                                              (*(*((struct_processus_fils *)
                                             (*(*((struct_liste_chainee *)                                              (*(*((struct_liste_chainee *)
                                             l_element_courant)).donnee).objet))                                              l_element_courant)).donnee).objet))
                                             .thread).pid, rpl_sigabort);                                              .thread).pid, rpl_sigabort, d_faux);
                                 }                                  }
                                 else                                  else
                                 {                                  {
Line 5486  rplinit(int argc, char *argv[], char *en Line 4981  rplinit(int argc, char *argv[], char *en
                                             (*(*((struct_processus_fils *)                                              (*(*((struct_processus_fils *)
                                             (*(*((struct_liste_chainee *)                                              (*(*((struct_liste_chainee *)
                                             l_element_courant)).donnee).objet))                                              l_element_courant)).donnee).objet))
                                             .thread).pid, rpl_sigstop);                                              .thread).pid, rpl_sigstop, d_faux);
                                 }                                  }
                             }                              }
                         }                          }
Line 5590  rplinit(int argc, char *argv[], char *en Line 5085  rplinit(int argc, char *argv[], char *en
 #                                   ifndef SEMAPHORES_NOMMES  #                                   ifndef SEMAPHORES_NOMMES
                                         sem_post(&((*s_etat_processus)                                          sem_post(&((*s_etat_processus)
                                                 .semaphore_fork));                                                  .semaphore_fork));
                                         sem_post(  
                                                 &semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy(  
                                                 &semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy(&((*s_etat_processus)                                          sem_destroy(&((*s_etat_processus)
                                                 .semaphore_fork));                                                  .semaphore_fork));
 #                                   else  #                                   else
                                         sem_post((*s_etat_processus)                                          sem_post((*s_etat_processus)
                                                 .semaphore_fork);                                                  .semaphore_fork);
                                         sem_post(  
                                                 semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy2(  
                                                 semaphore_gestionnaires_signaux,  
                                                 getpid(), SEM_SIGNAUX);  
                                         sem_destroy3((*s_etat_processus)                                          sem_destroy3((*s_etat_processus)
                                                 .semphore_fork, getpid(),                                                  .semaphore_fork, getpid(),
                                                 pthread_self(), SEM_FORK);                                                  pthread_self(), SEM_FORK);
 #                                   endif  #                                   endif
   
                                     liberation_contexte_cas(s_etat_processus);                                      liberation_contexte_cas(s_etat_processus);
                                     liberation_queue_signaux(s_etat_processus);                                      destruction_queue_signaux(s_etat_processus);
   
 #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                         stackoverflow_deinstall_handler();                                          stackoverflow_deinstall_handler();
Line 5653  rplinit(int argc, char *argv[], char *en Line 5136  rplinit(int argc, char *argv[], char *en
 #                                   ifndef SEMAPHORES_NOMMES  #                                   ifndef SEMAPHORES_NOMMES
                                         sem_post(&((*s_etat_processus)                                          sem_post(&((*s_etat_processus)
                                                 .semaphore_fork));                                                  .semaphore_fork));
                                         sem_post(  
                                                 &semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy(  
                                                 &semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy(&((*s_etat_processus)                                          sem_destroy(&((*s_etat_processus)
                                                 .semaphore_fork));                                                  .semaphore_fork));
 #                                   else  #                                   else
                                         sem_post((*s_etat_processus)                                          sem_post((*s_etat_processus)
                                                 .semaphore_fork);                                                  .semaphore_fork);
                                         sem_post(  
                                                 semaphore_gestionnaires_signaux  
                                                 );  
                                         sem_destroy2(  
                                                 semaphore_gestionnaires_signaux,  
                                                 getpid(), SEM_SIGNAUX);  
                                         sem_destroy3((*s_etat_processus)                                          sem_destroy3((*s_etat_processus)
                                                 .semphore_fork, getpid(),                                                  .semaphore_fork, getpid(),
                                                 pthread_self(), SEM_FORK);                                                  pthread_self(), SEM_FORK);
 #                                   endif  #                                   endif
   
                                     liberation_contexte_cas(s_etat_processus);                                      liberation_contexte_cas(s_etat_processus);
                                     liberation_queue_signaux(s_etat_processus);                                      destruction_queue_signaux(s_etat_processus);
   
 #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY  #                                   ifdef HAVE_STACK_OVERFLOW_RECOVERY
                                         stackoverflow_deinstall_handler();                                          stackoverflow_deinstall_handler();
Line 5907  rplinit(int argc, char *argv[], char *en Line 5378  rplinit(int argc, char *argv[], char *en
                     {                      {
                         if ((*resultats) != NULL)                          if ((*resultats) != NULL)
                         {                          {
                             free((*resultats));                              sys_free((*resultats));
   
                             if (((*resultats) = malloc(((size_t)                              if (((*resultats) = sys_malloc(((size_t)
                                     ((*s_etat_processus)                                      ((*s_etat_processus)
                                     .hauteur_pile_operationnelle + 1))                                      .hauteur_pile_operationnelle + 1))
                                     * sizeof(unsigned char **))) != NULL)                                      * sizeof(unsigned char **))) != NULL)
Line 6230  rplinit(int argc, char *argv[], char *en Line 5701  rplinit(int argc, char *argv[], char *en
   
     retrait_thread(s_etat_processus);      retrait_thread(s_etat_processus);
   
       attente.tv_sec = 0;
       attente.tv_nsec = GRANULARITE_us * 1000;
   
       while(nombre_thread_surveillance_processus != 0)
       {
           nanosleep(&attente, NULL);
           INCR_GRANULARITE(attente.tv_nsec);
       }
   
     pthread_mutex_destroy(&((*s_etat_processus).mutex_pile_processus));      pthread_mutex_destroy(&((*s_etat_processus).mutex_pile_processus));
     pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation));      pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation));
     pthread_mutex_destroy(&((*s_etat_processus).mutex_interruptions));      pthread_mutex_destroy(&((*s_etat_processus).mutex_interruptions));
Line 6248  rplinit(int argc, char *argv[], char *en Line 5728  rplinit(int argc, char *argv[], char *en
   
     free((*s_etat_processus).localisation);      free((*s_etat_processus).localisation);
   
 #   ifndef SEMAPHORES_NOMMES  
     sem_post(&semaphore_gestionnaires_signaux);  
     sem_destroy(&semaphore_gestionnaires_signaux);  
 #   else  
     sem_post(semaphore_gestionnaires_signaux);  
     sem_destroy2(semaphore_gestionnaires_signaux, getpid(), SEM_SIGNAUX);  
 #   endif  
   
     destruction_queue_signaux(s_etat_processus);      destruction_queue_signaux(s_etat_processus);
     liberation_contexte_cas(s_etat_processus);      liberation_contexte_cas(s_etat_processus);
   
Line 6263  rplinit(int argc, char *argv[], char *en Line 5735  rplinit(int argc, char *argv[], char *en
   
     if ((*s_etat_processus).requete_redemarrage == d_vrai)      if ((*s_etat_processus).requete_redemarrage == d_vrai)
     {      {
         chdir(repertoire_initial);          if (chdir(repertoire_initial) == 0)
         execvp(arg_exec[0], &(arg_exec[0]));          {
               execvp(arg_exec[0], &(arg_exec[0]));
           }
   
         erreur = d_erreur;          erreur = d_erreur;
     }      }
   
     free(arg_exec);      liberation_etat_processus_readline();
     arret_thread_signaux(s_etat_processus);  
     free(s_etat_processus);      liberation_allocateur_buffer(s_etat_processus);
       pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation_buffer));
   
       sys_free(s_etat_processus);
       sys_free(arg_exec);
   
 #   ifdef DEBUG_MEMOIRE  #   ifdef DEBUG_MEMOIRE
     debug_memoire_verification();      debug_memoire_verification();
Line 6396  controle_integrite(struct_processus *s_e Line 5875  controle_integrite(struct_processus *s_e
   
   
 unsigned char *  unsigned char *
 date_compilation()  date_compilation(struct_processus *s_etat_processus)
 {  {
     unsigned char       *date;      unsigned char       *date;
   
Line 6411  date_compilation() Line 5890  date_compilation()
     return(date);      return(date);
 }  }
   
   #pragma GCC diagnostic pop
   
 // vim: ts=4  // vim: ts=4

Removed from v.1.150  
changed lines
  Added in v.1.191


CVSweb interface <joel.bertrand@systella.fr>