--- rpl/src/gestion_processus.c 2018/05/30 09:27:32 1.92 +++ rpl/src/gestion_processus.c 2021/03/13 12:50:39 1.101 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.29 - Copyright (C) 1989-2018 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.33 + Copyright (C) 1989-2021 Dr. BERTRAND Joël This file is part of RPL/2. @@ -83,8 +83,7 @@ surveillance_processus(void *argument) BUG(1, uprintf("General mutex error!\n")); } - nombre_thread_surveillance_processus++; - insertion_thread_surveillance(s_etat_processus, s_argument_thread); + nombre_threads_surveillance_processus++; if (pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus)) != 0) { @@ -92,6 +91,8 @@ surveillance_processus(void *argument) BUG(1, uprintf("General mutex error!\n")); } + insertion_thread_surveillance(s_etat_processus, s_argument_thread); + attente.tv_sec = 0; attente.tv_nsec = GRANULARITE_us * 1000; @@ -363,7 +364,8 @@ surveillance_processus(void *argument) } } - envoi_signal_thread((*s_argument_thread).thread_pere, + envoi_signal_thread(NULL, + (*s_argument_thread).thread_pere, rpl_siginject); break; } @@ -630,7 +632,8 @@ surveillance_processus(void *argument) d_es_processus; } - envoi_signal_thread((*s_argument_thread).thread_pere, + envoi_signal_thread(NULL, + (*s_argument_thread).thread_pere, rpl_siginject); if (pthread_mutex_lock(&((*s_etat_processus) @@ -1426,8 +1429,21 @@ surveillance_processus(void *argument) fflush(stdout); } + if (pthread_mutex_unlock(&((*s_etat_processus) + .mutex_pile_processus)) != 0) + { + (*s_etat_processus).erreur_systeme_processus_fils = d_es_processus; + } + retrait_thread_surveillance(s_etat_processus, s_argument_thread); - nombre_thread_surveillance_processus--; + + if (pthread_mutex_lock(&((*s_etat_processus) + .mutex_pile_processus)) != 0) + { + (*s_etat_processus).erreur_systeme_processus_fils = d_es_processus; + } + + nombre_threads_surveillance_processus--; if (pthread_mutex_unlock(&((*s_etat_processus) .mutex_pile_processus)) != 0)