--- rpl/src/gestion_objets.c 2013/03/20 17:11:43 1.97 +++ rpl/src/gestion_objets.c 2013/05/28 22:09:55 1.104 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.1.13 + RPL/2 (R) version 4.1.14 Copyright (C) 1989-2013 Dr. BERTRAND Joël This file is part of RPL/2. @@ -859,7 +859,7 @@ liberation(struct_processus *s_etat_proc } else { - free((unsigned long *) ((*s_objet).objet)); + free((*s_objet).objet); } break; @@ -1394,7 +1394,7 @@ liberation(struct_processus *s_etat_proc .nombre_occurrences <= 1, pthread_mutex_unlock(&((*s_objet).mutex)), printf("(*((*((struct_tableau *) (*s_objet).objet))" - ".element[%lu])).nombre_occurrences=%ld\n", i, + ".element[%lld])).nombre_occurrences=%ld\n", i, (*((*((struct_tableau *) (*s_objet).objet)) .elements[i])).nombre_occurrences)); liberation(s_etat_processus, (*((struct_tableau *) @@ -1641,8 +1641,8 @@ copie_objet(struct_processus *s_etat_pro return(NULL); } - (*((unsigned long *) ((*s_nouvel_objet).objet))) = - (*((unsigned long *) ((*s_objet).objet))); + (*((integer8 *) ((*s_nouvel_objet).objet))) = + (*((integer8 *) ((*s_objet).objet))); break; } @@ -2863,9 +2863,8 @@ copie_etat_processus(struct_processus *s * n'ont aucune raison de changer. */ - pthread_mutexattr_init(&attributs_mutex); - pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL); (*s_nouvel_etat_processus).sections_critiques = 0; + (*s_nouvel_etat_processus).initialisation_scheduler = d_faux; // Les sémaphores sont initialisés dans le nouveau thread. Il // s'agit d'une limitation de l'implantation de l'émulation @@ -3538,6 +3537,12 @@ copie_etat_processus(struct_processus *s 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_interruptions), + &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), &attributs_mutex);