Diff for /rpl/src/allocateur.c between versions 1.5 and 1.6

version 1.5, 2015/01/30 07:53:14 version 1.6, 2015/02/01 09:47:18
Line 186  initialisation_allocateur_buffer(struct_ Line 186  initialisation_allocateur_buffer(struct_
         {          {
             longueur_tailles++;              longueur_tailles++;
         }          }
       }
   
         if (((*s_etat_processus).cache_buffer = sys_malloc(((size_t)      if (((*s_etat_processus).cache_buffer = sys_malloc(((size_t)
                 longueur_tailles) * sizeof(unsigned char **))) == NULL)              longueur_tailles) * sizeof(unsigned char **))) == NULL)
         {      {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;          (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;          return;
         }      }
   
         if (((*s_etat_processus).pointeur_cache_buffer = sys_malloc(((size_t)      if (((*s_etat_processus).pointeur_cache_buffer = sys_malloc(((size_t)
                 longueur_tailles) * sizeof(int))) == NULL)              longueur_tailles) * sizeof(int))) == NULL)
         {      {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;          (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;          return;
         }  
     }      }
   
     for(i = 0; i < longueur_tailles; i++)      for(i = 0; i < longueur_tailles; i++)
Line 238  liberation_allocateur_buffer(struct_proc Line 238  liberation_allocateur_buffer(struct_proc
     int                         i;      int                         i;
     int                         j;      int                         j;
   
   uprintf("Libération de l'allocateur des buffers\n");
   BACKTRACE(10);
     for(i = 0; i < longueur_tailles; i++)      for(i = 0; i < longueur_tailles; i++)
     {      {
 uprintf("L %d ************* %d ********************\n", getpid(), i);  
         for(j = 0; j < (*s_etat_processus).pointeur_cache_buffer[i]; j++)          for(j = 0; j < (*s_etat_processus).pointeur_cache_buffer[i]; j++)
         {          {
 uprintf("L %d %p\n", getpid(), (*s_etat_processus).cache_buffer[i][j]);  
             sys_free((*s_etat_processus).cache_buffer[i][j]);              sys_free((*s_etat_processus).cache_buffer[i][j]);
         }          }
   
Line 258  uprintf("L %d %p\n", getpid(), (*s_etat_ Line 258  uprintf("L %d %p\n", getpid(), (*s_etat_
         sys_free((*s_etat_processus).enveloppes_buffers[i]);          sys_free((*s_etat_processus).enveloppes_buffers[i]);
     }      }
   
   uprintf("Fin de la libération de l'allocateur des buffers\n");
     return;      return;
 }  }
   
Line 306  allocation_buffer(struct_processus *s_et Line 307  allocation_buffer(struct_processus *s_et
             {              {
                 (*s_buffer).buffer = (*s_etat_processus).cache_buffer[classe]                  (*s_buffer).buffer = (*s_etat_processus).cache_buffer[classe]
                         [--(*s_etat_processus).pointeur_cache_buffer[classe]];                          [--(*s_etat_processus).pointeur_cache_buffer[classe]];
 uprintf("Cachée : %d %p\n", getpid(), (*s_buffer).buffer);  
             }              }
             else              else
             {              {
Line 318  uprintf("Cachée : %d %p\n", getpid(), (* Line 318  uprintf("Cachée : %d %p\n", getpid(), (*
                             d_es_allocation_memoire;                              d_es_allocation_memoire;
                     return(NULL);                      return(NULL);
                 }                  }
 uprintf("Alloué : %d %p\n", getpid(), (*s_buffer).buffer);  
             }              }
         }          }
         else          else
Line 329  uprintf("Alloué : %d %p\n", getpid(), (* Line 328  uprintf("Alloué : %d %p\n", getpid(), (*
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return(NULL);                  return(NULL);
             }              }
 uprintf("Alloué (non cachée) : %d %p\n", getpid(), (*s_buffer).buffer);  
         }          }
     }      }
   
Line 367  liberation_buffer(struct_processus *s_et Line 365  liberation_buffer(struct_processus *s_et
         if ((*s_buffer).buffer != NULL)          if ((*s_buffer).buffer != NULL)
         {          {
             sys_free((*s_buffer).buffer);              sys_free((*s_buffer).buffer);
 uprintf("Libération (trop grand) : %d %p\n", getpid(), (*s_buffer).buffer);  
         }          }
     }      }
     else      else
Line 378  uprintf("Libération (trop grand) : %d %p Line 375  uprintf("Libération (trop grand) : %d %p
             (*s_etat_processus).cache_buffer[(*s_buffer).classe]              (*s_etat_processus).cache_buffer[(*s_buffer).classe]
                     [(*s_etat_processus).pointeur_cache_buffer                      [(*s_etat_processus).pointeur_cache_buffer
                     [(*s_buffer).classe]++] = (*s_buffer).buffer;                      [(*s_buffer).classe]++] = (*s_buffer).buffer;
 uprintf("Mise en cache : %d %p\n", getpid(), (*s_buffer).buffer);  
         }          }
         else          else
         {          {
             sys_free((*s_buffer).buffer);              sys_free((*s_buffer).buffer);
 uprintf("Libération (cache plein) : %d %p\n", getpid(), (*s_buffer).buffer);  
         }          }
     }      }
   
Line 464  rpl_realloc(struct_processus *s_etat_pro Line 459  rpl_realloc(struct_processus *s_etat_pro
   
     void                        *pointeur;      void                        *pointeur;
   
       if (ptr == NULL)
       {
           return(rpl_malloc(s_etat_processus, s));
       }
   
     if (pthread_mutex_lock(&((*s_etat_processus).mutex_allocation_buffer)) != 0)      if (pthread_mutex_lock(&((*s_etat_processus).mutex_allocation_buffer)) != 0)
     {      {
         (*s_etat_processus).erreur_systeme = d_es_processus;          (*s_etat_processus).erreur_systeme = d_es_processus;

Removed from v.1.5  
changed lines
  Added in v.1.6


CVSweb interface <joel.bertrand@systella.fr>