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

version 1.21, 2010/04/28 07:05:38 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 1857  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 2623  rplinit(int argc, char *argv[], unsigned Line 2644  rplinit(int argc, char *argv[], unsigned
   
                         if (erreur == d_absence_erreur)                          if (erreur == d_absence_erreur)
                         {                          {
                             if ((*s_etat_processus).at_exit != NULL)                              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,                                  erreur = evaluation(s_etat_processus,
                                         (*s_etat_processus).at_exit, 'E');                                          (*s_etat_processus).at_exit, 'E');
Line 2750  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 2778  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.21  
changed lines
  Added in v.1.22


CVSweb interface <joel.bertrand@systella.fr>