--- rpl/src/interruptions.c 2010/06/04 07:48:20 1.20 +++ rpl/src/interruptions.c 2010/06/17 11:00:23 1.22 @@ -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",