--- rpl/src/gestion_objets.c 2015/01/08 14:29:51 1.114 +++ rpl/src/gestion_objets.c 2015/01/30 07:53:14 1.116 @@ -117,7 +117,6 @@ initialisation_allocateur(struct_process (*s_etat_processus).pointeur_variables_variable = 0; (*s_etat_processus).pointeur_variables_tableau_noeuds = 0; (*s_etat_processus).pointeur_variables_tableau_noeuds_partages = 0; - (*s_etat_processus).pointeur_enveloppes_buffers = 0; return; } @@ -216,8 +215,6 @@ liberation_allocateur(struct_processus * } } - for(i = 0; i < (*s_etat_processus).pointeur_enveloppes_buffers; - free((*s_etat_processus).enveloppes_buffers[i++])); return; } @@ -929,7 +926,7 @@ liberation(struct_processus *s_etat_proc return; } - free((unsigned char *) ((*s_objet).objet)); + free((unsigned char *) (*s_objet).objet); break; } @@ -2846,7 +2843,8 @@ copie_etat_processus(struct_processus *s return(NULL); } - if ((s_nouvel_etat_processus = malloc(sizeof(struct_processus))) == NULL) + if ((s_nouvel_etat_processus = sys_malloc(sizeof(struct_processus))) + == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; return(NULL); @@ -3581,6 +3579,12 @@ copie_etat_processus(struct_processus *s &attributs_mutex); pthread_mutexattr_destroy(&attributs_mutex); + pthread_mutexattr_init(&attributs_mutex); + pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL); + pthread_mutex_init(&((*s_nouvel_etat_processus).mutex_allocation_buffer), + &attributs_mutex); + pthread_mutexattr_destroy(&attributs_mutex); + if (pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus;