--- rpl/src/interruptions.c 2015/02/16 19:50:18 1.156 +++ rpl/src/interruptions.c 2015/09/18 13:41:19 1.161 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.1.20 + RPL/2 (R) version 4.1.23 Copyright (C) 1989-2015 Dr. BERTRAND Joël This file is part of RPL/2. @@ -784,6 +784,8 @@ liberation_threads(struct_processus *s_e free(l_element_partage_courant); l_element_partage_courant = l_element_partage_suivant; } + + (*(*s_etat_processus).l_liste_variables_partagees) = NULL; } liberation_arbre_variables(s_etat_processus, @@ -3152,6 +3154,7 @@ creation_queue_signaux(struct_processus return; } + (*s_queue_signaux).controle = getpid(); return; } @@ -3184,7 +3187,11 @@ liberation_queue_signaux(struct_processu // Incrémenter le sémaphore pour être sûr de le débloquer. sem_post(semaphore_signalisation); - pthread_join((*s_queue_signaux).thread_signaux, NULL); + + if (getpid() == (*s_queue_signaux).controle) + { + pthread_join((*s_queue_signaux).thread_signaux, NULL); + } # ifdef IPCS_SYSV // SystemV # ifndef OS2