Diff for /rpl/src/instructions_d5.c between versions 1.19 and 1.24

version 1.19, 2010/05/13 19:09:18 version 1.24, 2010/06/02 10:28:45
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.15    RPL/2 (R) version 4.0.16
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2010 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 1644  instruction_detach(struct_processus *s_e Line 1644  instruction_detach(struct_processus *s_e
          * Initialisation de la pile des processus           * Initialisation de la pile des processus
          */           */
   
           l_element_courant = (struct_liste_chainee *)
                   (*s_etat_processus).l_base_pile_processus;
   
           while(l_element_courant != NULL)
           {
               l_element_suivant = (*l_element_courant).suivant;
   
               if ((*((*(struct_processus_fils *) (*(*l_element_courant).donnee)
                       .objet)).thread).processus_detache == d_faux)
               {
                   liberation(s_etat_processus, (*((*(struct_processus_fils *)
                           (*(*l_element_courant).donnee).objet)).thread)
                           .argument);
               }
   
               free((*(*l_element_courant).donnee).objet);
               free((*l_element_courant).donnee);
               free(l_element_courant);
   
               l_element_courant = l_element_suivant;
           }
   
         (*s_etat_processus).l_base_pile_processus = NULL;          (*s_etat_processus).l_base_pile_processus = NULL;
         // Les données associées sont déjà effacées par liberation_thread().  
   
         /*          /*
          * Initialisation de la pile système           * Initialisation de la pile système
Line 1835  instruction_detach(struct_processus *s_e Line 1856  instruction_detach(struct_processus *s_e
   À noter : on ne ferme pas la connexion car la conséquence immédiate est    À noter : on ne ferme pas la connexion car la conséquence immédiate est
   une destruction de l'objet pour le processus père.    une destruction de l'objet pour le processus père.
 ================================================================================  ================================================================================
   */
   
         l_element_courant = (*s_etat_processus).s_connecteurs_sql;          l_element_courant = (*s_etat_processus).s_connecteurs_sql;
   
Line 1842  instruction_detach(struct_processus *s_e Line 1864  instruction_detach(struct_processus *s_e
         {          {
             l_element_suivant = (*l_element_courant).suivant;              l_element_suivant = (*l_element_courant).suivant;
   
             sqlclose((*l_element_courant).donnee);  //          sqlclose((*l_element_courant).donnee);
             liberation(s_etat_processus, (*l_element_courant).donnee);              liberation(s_etat_processus, (*l_element_courant).donnee);
             l_element_courant = l_element_suivant;              l_element_courant = l_element_suivant;
         }          }
 */  
   
         (*s_etat_processus).s_connecteurs_sql = NULL;          (*s_etat_processus).s_connecteurs_sql = NULL;
   
Line 2639  instruction_detach(struct_processus *s_e Line 2660  instruction_detach(struct_processus *s_e
         liberation(s_etat_processus, s_objet);          liberation(s_etat_processus, s_objet);
   
 #       ifndef Cygwin  #       ifndef Cygwin
           (*s_etat_processus).pile_signal.ss_flags = SS_DISABLE;
           sigaltstack(&((*s_etat_processus).pile_signal), NULL);
         free((*s_etat_processus).pile_signal.ss_sp);          free((*s_etat_processus).pile_signal.ss_sp);
 #       endif  #       endif
   
Line 2712  instruction_detach(struct_processus *s_e Line 2735  instruction_detach(struct_processus *s_e
   
         clear_history();          clear_history();
   
           free(s_etat_processus);
   
 #       ifdef DEBUG_MEMOIRE  #       ifdef DEBUG_MEMOIRE
         debug_memoire_verification(s_etat_processus);          debug_memoire_verification();
           analyse_post_mortem();
 #       endif  #       endif
   
         free(s_etat_processus);  
   
         exit(EXIT_SUCCESS);          exit(EXIT_SUCCESS);
     }      }
     else      else

Removed from v.1.19  
changed lines
  Added in v.1.24


CVSweb interface <joel.bertrand@systella.fr>