Diff for /rpl/src/instructions_d5.c between versions 1.14 and 1.16

version 1.14, 2010/04/28 07:05:38 version 1.16, 2010/04/28 11:05:45
Line 1862  instruction_detach(struct_processus *s_e Line 1862  instruction_detach(struct_processus *s_e
                                 d_ex_erreur_evaluation;                                  d_ex_erreur_evaluation;
                     }                      }
                 }                  }
                   else
                   {
                       if (((*s_etat_processus).var_volatile_alarme == 0)
                               && ((*s_etat_processus).arret_depuis_abort == 0)
                               && ((*s_etat_processus).at_exit != NULL))
                       {
                           (*s_etat_processus).var_volatile_requete_arret = 0;
   
                           if (evaluation(s_etat_processus,
                                   (*s_etat_processus).at_exit, 'E') == d_erreur)
                           {
                               (*s_etat_processus).erreur_execution =
                                       d_ex_erreur_evaluation;
                           }
                       }
                   }
             }              }
             else              else
             {              {
Line 1878  instruction_detach(struct_processus *s_e Line 1894  instruction_detach(struct_processus *s_e
                 {                  {
                     if ((*s_etat_processus).at_exit != NULL)                      if ((*s_etat_processus).at_exit != NULL)
                     {                      {
                           (*s_etat_processus).var_volatile_requete_arret = 0;
   
                         if (evaluation(s_etat_processus,                          if (evaluation(s_etat_processus,
                                 (*s_etat_processus).at_exit, 'E') == d_erreur)                                  (*s_etat_processus).at_exit, 'E') == d_erreur)
                         {                          {
Line 1888  instruction_detach(struct_processus *s_e Line 1906  instruction_detach(struct_processus *s_e
                 }                  }
   
                 liberation(s_etat_processus, s_copie);                  liberation(s_etat_processus, s_copie);
                 liberation(s_etat_processus, (*s_etat_processus).at_exit);  
             }              }
         }          }
   
           liberation(s_etat_processus, (*s_etat_processus).at_exit);
   
         l_element_courant = (*s_etat_processus).liste_mutexes;          l_element_courant = (*s_etat_processus).liste_mutexes;
         while(l_element_courant != NULL)          while(l_element_courant != NULL)
         {          {
Line 2118  instruction_detach(struct_processus *s_e Line 2137  instruction_detach(struct_processus *s_e
                 }                  }
                 else                  else
                 {                  {
                     kill((*(*((struct_processus_fils *)                      if ((*s_etat_processus).arret_depuis_abort == -1)
                             (*(*l_element_courant).donnee).objet)).thread).pid,                      {
                             SIGFSTOP);                          kill((*(*((struct_processus_fils *)
                                   (*(*l_element_courant).donnee).objet)).thread)
                                   .pid, SIGFABORT);
                       }
                       else
                       {
                           kill((*(*((struct_processus_fils *)
                                   (*(*l_element_courant).donnee).objet)).thread)
                                   .pid, SIGFSTOP);
                       }
                 }                  }
             }              }
             else              else
Line 2167  instruction_detach(struct_processus *s_e Line 2195  instruction_detach(struct_processus *s_e
                     }                      }
                     else                      else
                     {                      {
                         pthread_kill((*(*((struct_processus_fils *)                          if ((*s_etat_processus).arret_depuis_abort == -1)
                                 (*(*l_element_courant).donnee).objet)).thread)                          {
                                 .tid, SIGFSTOP);                              pthread_kill((*(*((struct_processus_fils *)
                                       (*(*l_element_courant).donnee).objet))
                                       .thread).tid, SIGFABORT);
                           }
                           else
                           {
                               pthread_kill((*(*((struct_processus_fils *)
                                       (*(*l_element_courant).donnee).objet))
                                       .thread).tid, SIGFSTOP);
                           }
                     }                      }
                 }                  }
   

Removed from v.1.14  
changed lines
  Added in v.1.16


CVSweb interface <joel.bertrand@systella.fr>