Diff for /rpl/src/rpl.c between versions 1.182 and 1.188

version 1.182, 2016/03/18 12:43:48 version 1.188, 2016/10/11 11:57:02
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.25    RPL/2 (R) version 4.1.26
   Copyright (C) 1989-2016 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 27 Line 27
 #pragma GCC diagnostic push  #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wclobbered"  #pragma GCC diagnostic ignored "-Wclobbered"
   
   #ifdef BROKEN_SIGSEGV
   #   undef HAVE_STACK_OVERFLOW_RECOVERY
   #   undef HAVE_SIGSEGV_RECOVERY
   #endif
   
   
 /*  /*
 ================================================================================  ================================================================================
Line 123  rplinit(int argc, char *argv[], char *en Line 128  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 671  rplinit(int argc, char *argv[], char *en Line 681  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));
Line 705  rplinit(int argc, char *argv[], char *en Line 715  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 715  rplinit(int argc, char *argv[], char *en Line 725  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));
Line 2447  rplinit(int argc, char *argv[], char *en Line 2457  rplinit(int argc, char *argv[], char *en
   
         if (debug == d_faux)          if (debug == d_faux)
         {          {
 #   ifdef HAVE_SIGSEGV_RECOVERY  #   if defined(HAVE_SIGSEGV_RECOVERY)
             if (sigsegv_install_handler(interruption_violation_access) != 0)              if (sigsegv_install_handler(interruption_violation_access) != 0)
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
Line 5696  rplinit(int argc, char *argv[], char *en Line 5706  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));

Removed from v.1.182  
changed lines
  Added in v.1.188


CVSweb interface <joel.bertrand@systella.fr>