--- rpl/src/instructions_d5.c 2013/03/20 17:11:44 1.103 +++ rpl/src/instructions_d5.c 2013/03/27 09:14:51 1.106 @@ -46,7 +46,7 @@ instruction_dft(struct_processus *s_etat logical1 presence_longueur_dft; - long longueur_dft_signee; + integer8 longueur_dft_signee; struct_complexe16 *matrice_f77; @@ -1999,11 +1999,18 @@ instruction_detach(struct_processus *s_e } else { - if (((*s_etat_processus).var_volatile_alarme == 0) - && ((*s_etat_processus).arret_depuis_abort == 0) + if (((*s_etat_processus).arret_depuis_abort == 0) && ((*s_etat_processus).at_exit != NULL)) { (*s_etat_processus).var_volatile_requete_arret = 0; + (*s_etat_processus).var_volatile_alarme = 0; + (*s_etat_processus).var_volatile_traitement_sigint + = 0; + + if ((*s_etat_processus).profilage == d_vrai) + { + profilage(s_etat_processus, "ATEXIT"); + } if (evaluation(s_etat_processus, (*s_etat_processus).at_exit, 'E') == @@ -2012,6 +2019,11 @@ instruction_detach(struct_processus *s_e (*s_etat_processus).erreur_execution = d_ex_erreur_evaluation; } + + if ((*s_etat_processus).profilage == d_vrai) + { + profilage(s_etat_processus, NULL); + } } } } @@ -2028,11 +2040,18 @@ instruction_detach(struct_processus *s_e } else { - if (((*s_etat_processus).var_volatile_alarme == 0) - && ((*s_etat_processus).arret_depuis_abort == 0) + if (((*s_etat_processus).arret_depuis_abort == 0) && ((*s_etat_processus).at_exit != NULL)) { (*s_etat_processus).var_volatile_requete_arret = 0; + (*s_etat_processus).var_volatile_alarme = 0; + (*s_etat_processus).var_volatile_traitement_sigint + = 0; + + if ((*s_etat_processus).profilage == d_vrai) + { + profilage(s_etat_processus, "ATEXIT"); + } if (evaluation(s_etat_processus, (*s_etat_processus).at_exit, 'E') == @@ -2041,6 +2060,11 @@ instruction_detach(struct_processus *s_e (*s_etat_processus).erreur_execution = d_ex_erreur_evaluation; } + + if ((*s_etat_processus).profilage == d_vrai) + { + profilage(s_etat_processus, NULL); + } } }