--- rpl/src/gestion_threads.c 2010/05/13 19:09:18 1.16 +++ rpl/src/gestion_threads.c 2010/06/28 14:29:11 1.23 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.15 + RPL/2 (R) version 4.0.17 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -74,9 +74,9 @@ lancement_thread(void *argument) attente.tv_nsec = GRANULARITE_us * 1000; s_argument_thread = (struct_descripteur_thread *) argument; + s_etat_processus = (*s_argument_thread).s_nouvel_etat_processus; (*s_argument_thread).tid = pthread_self(); (*s_argument_thread).thread_actif = d_vrai; - s_etat_processus = (*s_argument_thread).s_nouvel_etat_processus; # ifndef SEMAPHORES_NOMMES if (pthread_setspecific(semaphore_fork_processus_courant, @@ -268,6 +268,7 @@ lancement_thread(void *argument) && ((*s_etat_processus).at_exit != NULL)) { (*s_etat_processus).var_volatile_requete_arret = 0; + (*s_etat_processus).var_volatile_traitement_retarde_stop = -1; if (evaluation(s_etat_processus, (*s_etat_processus).at_exit, 'E') == d_erreur) @@ -1077,13 +1078,9 @@ lancement_thread(void *argument) retrait_thread(s_etat_processus); pthread_mutex_destroy(&((*s_etat_processus).mutex)); + pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation)); free((*s_etat_processus).localisation); - -# ifdef DEBUG_MEMOIRE - debug_memoire_verification(s_etat_processus); -# endif - free(s_etat_processus); pthread_mutex_lock(&((*s_argument_thread).mutex));