Diff for /rpl/src/rpl.c between versions 1.125 and 1.135

version 1.125, 2012/12/13 16:59:43 version 1.135, 2013/02/27 17:11:45
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.11    RPL/2 (R) version 4.1.13
   Copyright (C) 1989-2012 Dr. BERTRAND Joël    Copyright (C) 1989-2013 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 80  rplinit(int argc, char *argv[], char *en Line 80  rplinit(int argc, char *argv[], char *en
   
     struct_processus                    *s_etat_processus;      struct_processus                    *s_etat_processus;
   
       struct_liste_variables_partagees    *l_element_partage_courant;
       struct_liste_variables_partagees    *l_element_partage_suivant;
   
     struct_liste_variables_statiques    *l_element_statique_courant;      struct_liste_variables_statiques    *l_element_statique_courant;
     struct_liste_variables_statiques    *l_element_statique_suivant;      struct_liste_variables_statiques    *l_element_statique_suivant;
   
       struct_arbre_variables_partagees    *s_arbre_variables_partagees;
       struct_liste_variables_partagees    *l_liste_variables_partagees;
   
     struct sigaction                    action;      struct sigaction                    action;
     struct sigaction                    registre;      struct sigaction                    registre;
   
Line 267  rplinit(int argc, char *argv[], char *en Line 273  rplinit(int argc, char *argv[], char *en
     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);
   
       pthread_mutexattr_init(&attributs_mutex);
       pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_RECURSIVE);
       pthread_mutex_init(&mutex_liste_variables_partagees, &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
Line 424  rplinit(int argc, char *argv[], char *en Line 435  rplinit(int argc, char *argv[], char *en
   
     if ((*s_etat_processus).langue == 'F')      if ((*s_etat_processus).langue == 'F')
     {      {
         printf("+++Copyright (C) 1989 à 2011, 2012 BERTRAND Joël\n");          printf("+++Copyright (C) 1989 à 2012, 2013 BERTRAND Joël\n");
     }      }
     else      else
     {      {
         printf("+++Copyright (C) 1989 to 2011, 2012 BERTRAND Joel\n");          printf("+++Copyright (C) 1989 to 2012, 2013 BERTRAND Joel\n");
     }      }
   
     if (getenv("HOME") != NULL)      if (getenv("HOME") != NULL)
Line 582  rplinit(int argc, char *argv[], char *en Line 593  rplinit(int argc, char *argv[], char *en
     }      }
   
     signal_test = SIGTEST;      signal_test = SIGTEST;
     kill(getpid(), SIGINT);      raise(SIGINT);
   
     attente.tv_sec = 0;      attente.tv_sec = 0;
     attente.tv_nsec = 1000000;      attente.tv_nsec = 1000000;
Line 669  rplinit(int argc, char *argv[], char *en Line 680  rplinit(int argc, char *argv[], char *en
     }      }
   
     signal_test = SIGTEST;      signal_test = SIGTEST;
     kill(getpid(), SIGTERM);      raise(SIGTERM);
   
     attente.tv_sec = 0;      attente.tv_sec = 0;
     attente.tv_nsec = 1000000;      attente.tv_nsec = 1000000;
Line 756  rplinit(int argc, char *argv[], char *en Line 767  rplinit(int argc, char *argv[], char *en
     }      }
   
     signal_test = SIGTEST;      signal_test = SIGTEST;
     kill(getpid(), SIGALRM);      raise(SIGALRM);
   
     attente.tv_sec = 0;      attente.tv_sec = 0;
     attente.tv_nsec = 1000000;      attente.tv_nsec = 1000000;
Line 844  rplinit(int argc, char *argv[], char *en Line 855  rplinit(int argc, char *argv[], char *en
     }      }
   
     signal_test = SIGTEST;      signal_test = SIGTEST;
     kill(getpid(), SIGTSTP);      raise(SIGTSTP);
   
     attente.tv_sec = 0;      attente.tv_sec = 0;
     attente.tv_nsec = 1000000;      attente.tv_nsec = 1000000;
Line 934  rplinit(int argc, char *argv[], char *en Line 945  rplinit(int argc, char *argv[], char *en
     }      }
   
     signal_test = SIGTEST;      signal_test = SIGTEST;
     kill(getpid(), SIGPIPE);      raise(SIGPIPE);
   
     attente.tv_sec = 0;      attente.tv_sec = 0;
     attente.tv_nsec = 1000000;      attente.tv_nsec = 1000000;
Line 1024  rplinit(int argc, char *argv[], char *en Line 1035  rplinit(int argc, char *argv[], char *en
     }      }
   
     signal_test = SIGTEST;      signal_test = SIGTEST;
     kill(getpid(), SIGUSR1);      raise(SIGUSR1);
   
     attente.tv_sec = 0;      attente.tv_sec = 0;
     attente.tv_nsec = 1000000;      attente.tv_nsec = 1000000;
Line 2789  rplinit(int argc, char *argv[], char *en Line 2800  rplinit(int argc, char *argv[], char *en
             }              }
   
             signal_test = SIGTEST;              signal_test = SIGTEST;
             kill(getpid(), SIGSEGV);              raise(SIGSEGV);
   
             attente.tv_sec = 0;              attente.tv_sec = 0;
             attente.tv_nsec = 1000000;              attente.tv_nsec = 1000000;
Line 2889  rplinit(int argc, char *argv[], char *en Line 2900  rplinit(int argc, char *argv[], char *en
             }              }
   
             signal_test = SIGTEST;              signal_test = SIGTEST;
             kill(getpid(), SIGBUS);              raise(SIGBUS);
   
             attente.tv_sec = 0;              attente.tv_sec = 0;
             attente.tv_nsec = 1000000;              attente.tv_nsec = 1000000;
Line 3425  rplinit(int argc, char *argv[], char *en Line 3436  rplinit(int argc, char *argv[], char *en
   
             (*s_etat_processus).s_arbre_variables = NULL;              (*s_etat_processus).s_arbre_variables = NULL;
             (*s_etat_processus).l_liste_variables_par_niveau = NULL;              (*s_etat_processus).l_liste_variables_par_niveau = NULL;
               (*s_etat_processus).l_liste_variables_statiques = NULL;
             (*s_etat_processus).gel_liste_variables = d_faux;              (*s_etat_processus).gel_liste_variables = d_faux;
               s_arbre_variables_partagees = NULL;
               l_liste_variables_partagees = NULL;
               (*s_etat_processus).s_arbre_variables_partagees =
                       &s_arbre_variables_partagees;
               (*s_etat_processus).l_liste_variables_partagees =
                       &l_liste_variables_partagees;
             (*s_etat_processus).pointeur_variable_courante = NULL;              (*s_etat_processus).pointeur_variable_courante = NULL;
             (*s_etat_processus).pointeur_variable_statique_courante = NULL;              (*s_etat_processus).pointeur_variable_statique_courante = NULL;
             (*s_etat_processus).l_liste_variables_statiques = NULL;              (*s_etat_processus).pointeur_variable_partagee_courante = NULL;
             (*s_etat_processus).niveau_courant = 0;              (*s_etat_processus).niveau_courant = 0;
             (*s_etat_processus).niveau_initial = 0;              (*s_etat_processus).niveau_initial = 0;
             (*s_etat_processus).creation_variables_statiques = d_faux;              (*s_etat_processus).creation_variables_statiques = d_faux;
Line 5662  rplinit(int argc, char *argv[], char *en Line 5680  rplinit(int argc, char *argv[], char *en
                      */                       */
   
                     liberation_arbre_variables_partagees(s_etat_processus,                      liberation_arbre_variables_partagees(s_etat_processus,
                             (*s_etat_processus).s_arbre_variables, d_vrai);                              (*(*s_etat_processus).s_arbre_variables_partagees));
                     liberation_arbre_variables(s_etat_processus,                      liberation_arbre_variables(s_etat_processus,
                             (*s_etat_processus).s_arbre_variables, d_vrai);                              (*s_etat_processus).s_arbre_variables, d_vrai);
                     free((*s_etat_processus).pointeurs_caracteres_variables);                      free((*s_etat_processus).pointeurs_caracteres_variables);
Line 5678  rplinit(int argc, char *argv[], char *en Line 5696  rplinit(int argc, char *argv[], char *en
                         l_element_statique_courant = l_element_statique_suivant;                          l_element_statique_courant = l_element_statique_suivant;
                     }                      }
   
                       l_element_partage_courant = (*(*s_etat_processus)
                               .l_liste_variables_partagees);
   
                       while(l_element_partage_courant != NULL)
                       {
                           l_element_partage_suivant =
                                   (*l_element_partage_courant).suivant;
                           free(l_element_partage_courant);
                           l_element_partage_courant = l_element_partage_suivant;
                       }
   
                     /*                      /*
                      * Si resultats est non nul, rplinit a été appelé                       * Si resultats est non nul, rplinit a été appelé
                      * depuis rpl() [librpl] et non main().                       * depuis rpl() [librpl] et non main().
Line 6015  rplinit(int argc, char *argv[], char *en Line 6044  rplinit(int argc, char *argv[], char *en
     pthread_mutex_destroy(&((*s_etat_processus).mutex));      pthread_mutex_destroy(&((*s_etat_processus).mutex));
     pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation));      pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation));
     pthread_mutex_destroy(&mutex_sections_critiques);      pthread_mutex_destroy(&mutex_sections_critiques);
       pthread_mutex_destroy(&mutex_liste_variables_partagees);
   
 #   ifndef SEMAPHORES_NOMMES  #   ifndef SEMAPHORES_NOMMES
     sem_post(&((*s_etat_processus).semaphore_fork));      sem_post(&((*s_etat_processus).semaphore_fork));

Removed from v.1.125  
changed lines
  Added in v.1.135


CVSweb interface <joel.bertrand@systella.fr>