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

version 1.4, 2015/01/27 15:41:25 version 1.5, 2015/01/30 07:53:14
Line 240  liberation_allocateur_buffer(struct_proc Line 240  liberation_allocateur_buffer(struct_proc
   
     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 304  allocation_buffer(struct_processus *s_et Line 306  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 315  allocation_buffer(struct_processus *s_et Line 318  allocation_buffer(struct_processus *s_et
                             d_es_allocation_memoire;                              d_es_allocation_memoire;
                     return(NULL);                      return(NULL);
                 }                  }
   uprintf("Alloué : %d %p\n", getpid(), (*s_buffer).buffer);
             }              }
         }          }
         else          else
Line 325  allocation_buffer(struct_processus *s_et Line 329  allocation_buffer(struct_processus *s_et
                 (*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 362  liberation_buffer(struct_processus *s_et Line 367  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 372  liberation_buffer(struct_processus *s_et Line 378  liberation_buffer(struct_processus *s_et
             (*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 405  rpl_malloc(struct_processus *s_etat_proc Line 413  rpl_malloc(struct_processus *s_etat_proc
   
     void                        *pointeur;      void                        *pointeur;
   
       if (pthread_mutex_lock(&((*s_etat_processus).mutex_allocation_buffer)) != 0)
       {
           (*s_etat_processus).erreur_systeme = d_es_processus;
           return(NULL);
       }
   
     if ((s_buffer = allocation_buffer(s_etat_processus, s)) == NULL)      if ((s_buffer = allocation_buffer(s_etat_processus, s)) == NULL)
     {      {
           pthread_mutex_unlock(&((*s_etat_processus).mutex_allocation_buffer));
   
         (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;          (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
         return(NULL);          return(NULL);
     }      }
   
     pointeur = (*s_buffer).buffer + sizeof(struct_buffer *);      pointeur = (*s_buffer).buffer + sizeof(struct_buffer *);
   
       if (pthread_mutex_unlock(&((*s_etat_processus).mutex_allocation_buffer))
               != 0)
       {
           (*s_etat_processus).erreur_systeme = d_es_processus;
           return(NULL);
       }
   
     return(pointeur);      return(pointeur);
 }  }
   
Line 440  rpl_realloc(struct_processus *s_etat_pro Line 464  rpl_realloc(struct_processus *s_etat_pro
   
     void                        *pointeur;      void                        *pointeur;
   
       if (pthread_mutex_lock(&((*s_etat_processus).mutex_allocation_buffer)) != 0)
       {
           (*s_etat_processus).erreur_systeme = d_es_processus;
           return(NULL);
       }
   
     if ((s_nouveau_buffer = allocation_buffer(s_etat_processus, s)) == NULL)      if ((s_nouveau_buffer = allocation_buffer(s_etat_processus, s)) == NULL)
     {      {
           pthread_mutex_unlock(&((*s_etat_processus).mutex_allocation_buffer));
   
         (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;          (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
         return(NULL);          return(NULL);
     }      }
Line 458  rpl_realloc(struct_processus *s_etat_pro Line 490  rpl_realloc(struct_processus *s_etat_pro
     liberation_buffer(s_etat_processus, s_ancien_buffer);      liberation_buffer(s_etat_processus, s_ancien_buffer);
     pointeur = (*s_nouveau_buffer).buffer + sizeof(struct_buffer *);      pointeur = (*s_nouveau_buffer).buffer + sizeof(struct_buffer *);
   
       if (pthread_mutex_unlock(&((*s_etat_processus).mutex_allocation_buffer))
               != 0)
       {
           (*s_etat_processus).erreur_systeme = d_es_processus;
           return(NULL);
       }
   
     return(pointeur);      return(pointeur);
 }  }
   
Line 485  rpl_free(struct_processus *s_etat_proces Line 524  rpl_free(struct_processus *s_etat_proces
     }      }
   
     s_buffer = (*((struct_buffer **) (ptr - sizeof(struct_buffer *))));      s_buffer = (*((struct_buffer **) (ptr - sizeof(struct_buffer *))));
   
       if (pthread_mutex_lock(&((*s_etat_processus).mutex_allocation_buffer)) != 0)
       {
           (*s_etat_processus).erreur_systeme = d_es_processus;
           return;
       }
   
     liberation_buffer(s_etat_processus, s_buffer);      liberation_buffer(s_etat_processus, s_buffer);
   
       if (pthread_mutex_unlock(&((*s_etat_processus).mutex_allocation_buffer))
               != 0)
       {
           (*s_etat_processus).erreur_systeme = d_es_processus;
           return;
       }
   
     return;      return;
 }  }
   

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


CVSweb interface <joel.bertrand@systella.fr>