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