--- rpl/src/interruptions.c 2010/06/04 07:48:20 1.20 +++ rpl/src/interruptions.c 2010/06/24 10:10:46 1.24 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.16 + RPL/2 (R) version 4.0.17 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -125,7 +125,6 @@ insertion_thread(struct_processus *s_eta } (*l_nouvel_objet).suivant = liste_threads; - liste_threads = l_nouvel_objet; # ifndef SEMAPHORES_NOMMES @@ -184,7 +183,10 @@ insertion_thread_surveillance(struct_pro } } -printf("<1> +1 %d\n", (*s_argument_thread).nombre_references); + pthread_mutex_lock(&((*s_argument_thread).mutex)); + (*s_argument_thread).nombre_references++; + pthread_mutex_unlock(&((*s_argument_thread).mutex)); + (*l_nouvel_objet).suivant = liste_threads_surveillance; (*l_nouvel_objet).donnee = (void *) s_argument_thread; @@ -391,13 +393,11 @@ retrait_thread_surveillance(struct_proce } (*s_argument_thread).nombre_references--; -printf("<3> -1 %d %p\n", (*s_argument_thread).nombre_references, s_argument_thread); BUG((*s_argument_thread).nombre_references < 0, printf("(*s_argument_thread).nombre_references = %d\n", (int) (*s_argument_thread).nombre_references)); -printf("retrait_thread_surveillance : %d\n", (*s_argument_thread).nombre_references); if ((*s_argument_thread).nombre_references == 0) { if (pthread_mutex_unlock(&((*s_argument_thread).mutex)) != 0) @@ -684,7 +684,6 @@ liberation_threads(struct_processus *s_e } (*s_argument_thread).nombre_references--; -printf("<1> -1 %d %p\n", (*s_argument_thread).nombre_references, s_argument_thread); BUG((*s_argument_thread).nombre_references < 0, printf("(*s_argument_thread).nombre_references = %d\n", @@ -1359,7 +1358,6 @@ printf("<1> -1 %d %p\n", (*s_argument_th } (*s_argument_thread).nombre_references--; -printf("<2> -1 %d %p\n", (*s_argument_thread).nombre_references, s_argument_thread); BUG((*s_argument_thread).nombre_references < 0, printf("(*s_argument_thread).nombre_references = %d\n",