Diff for /rpl/src/rpl.c between versions 1.18 and 1.22

version 1.18, 2010/04/21 13:45:50 version 1.22, 2010/04/28 11:05:45
Line 447  rplinit(int argc, char *argv[], unsigned Line 447  rplinit(int argc, char *argv[], unsigned
         return(EXIT_FAILURE);          return(EXIT_FAILURE);
     }      }
   
       action.sa_sigaction = interruption5;
       action.sa_flags = SA_NODEFER | SA_ONSTACK | SA_SIGINFO;
   
       if (sigaction(SIGFABORT, &action, NULL) != 0)
       {
           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_sigaction = interruption8;      action.sa_sigaction = interruption8;
     action.sa_flags = SA_NODEFER | SA_ONSTACK | SA_SIGINFO;      action.sa_flags = SA_NODEFER | SA_ONSTACK | SA_SIGINFO;
   
Line 1840  rplinit(int argc, char *argv[], unsigned Line 1860  rplinit(int argc, char *argv[], unsigned
                 (*s_etat_processus).pile_origine_interruptions[i] = NULL;                  (*s_etat_processus).pile_origine_interruptions[i] = NULL;
             }              }
   
               (*s_etat_processus).at_exit = NULL;
   
             (*s_etat_processus).pointeurs_caracteres = NULL;              (*s_etat_processus).pointeurs_caracteres = NULL;
             (*s_etat_processus).arbre_instructions = NULL;              (*s_etat_processus).arbre_instructions = NULL;
   
Line 1855  rplinit(int argc, char *argv[], unsigned Line 1877  rplinit(int argc, char *argv[], unsigned
             (*s_etat_processus).var_volatile_traitement_sigint = 0;              (*s_etat_processus).var_volatile_traitement_sigint = 0;
             (*s_etat_processus).var_volatile_recursivite = 0;              (*s_etat_processus).var_volatile_recursivite = 0;
             (*s_etat_processus).var_volatile_exception_gsl = 0;              (*s_etat_processus).var_volatile_exception_gsl = 0;
               (*s_etat_processus).arret_depuis_abort = 0;
   
             initialisation_allocateur(s_etat_processus);              initialisation_allocateur(s_etat_processus);
             initialisation_drapeaux(s_etat_processus);              initialisation_drapeaux(s_etat_processus);
Line 2618  rplinit(int argc, char *argv[], unsigned Line 2641  rplinit(int argc, char *argv[], unsigned
                                 erreur = sequenceur_optimise(s_etat_processus);                                  erreur = sequenceur_optimise(s_etat_processus);
                             }                              }
                         }                          }
   
                           if (erreur == d_absence_erreur)
                           {
                               if (((*s_etat_processus).var_volatile_alarme == 0)
                                       && ((*s_etat_processus).arret_depuis_abort
                                       == 0) && ((*s_etat_processus).at_exit
                                       != NULL))
                               {
                                   erreur = evaluation(s_etat_processus,
                                           (*s_etat_processus).at_exit, 'E');
                               }
                           }
   
                           liberation(s_etat_processus,
                                   (*s_etat_processus).at_exit);
                     }                      }
   
                     if ((*s_etat_processus).generateur_aleatoire != NULL)                      if ((*s_etat_processus).generateur_aleatoire != NULL)
Line 2736  rplinit(int argc, char *argv[], unsigned Line 2774  rplinit(int argc, char *argv[], unsigned
                             }                              }
                             else                              else
                             {                              {
                                 kill((*(*((struct_processus_fils *)                                  if ((*s_etat_processus).arret_depuis_abort
                                         (*(*((struct_liste_chainee *)                                          == -1)
                                         l_element_courant)).donnee).objet))                                  {
                                         .thread).pid, SIGFSTOP);                                      kill((*(*((struct_processus_fils *)
                                               (*(*((struct_liste_chainee *)
                                               l_element_courant)).donnee).objet))
                                               .thread).pid, SIGFABORT);
                                   }
                                   else
                                   {
                                       kill((*(*((struct_processus_fils *)
                                               (*(*((struct_liste_chainee *)
                                               l_element_courant)).donnee).objet))
                                               .thread).pid, SIGFSTOP);
                                   }
                             }                              }
                         }                          }
                         else                          else
Line 2764  rplinit(int argc, char *argv[], unsigned Line 2813  rplinit(int argc, char *argv[], unsigned
                                 }                                  }
                                 else                                  else
                                 {                                  {
                                     pthread_kill((*(*((struct_processus_fils *)                                      if ((*s_etat_processus).arret_depuis_abort
                                             (*(*((struct_liste_chainee *)                                              == -1)
                                             l_element_courant)).donnee).objet))                                      {
                                             .thread).tid, SIGFSTOP);                                          pthread_kill(
                                                   (*(*((struct_processus_fils *)
                                                   (*(*((struct_liste_chainee *)
                                                   l_element_courant)).donnee)
                                                   .objet)).thread).tid,
                                                   SIGFABORT);
                                       }
                                       else
                                       {
                                           pthread_kill(
                                                   (*(*((struct_processus_fils *)
                                                   (*(*((struct_liste_chainee *)
                                                   l_element_courant)).donnee)
                                                   .objet)).thread).tid,
                                                   SIGFSTOP);
                                       }
                                 }                                  }
                             }                              }
   

Removed from v.1.18  
changed lines
  Added in v.1.22


CVSweb interface <joel.bertrand@systella.fr>