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

version 1.21, 2010/05/19 09:22:34 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 1296  instruction_detach(struct_processus *s_e Line 1296  instruction_detach(struct_processus *s_e
          * Processus fils           * Processus fils
          */           */
   
 #       ifdef DEBUG_MEMOIRE  
         debug_memoire_reinitialisation();  
 #       endif  
   
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
         sem_post(&semaphore_gestionnaires_signaux);          sem_post(&semaphore_gestionnaires_signaux);
         sem_destroy(&semaphore_gestionnaires_signaux);          sem_destroy(&semaphore_gestionnaires_signaux);
Line 1648  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 1839  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 1846  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;
   

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


CVSweb interface <joel.bertrand@systella.fr>