--- rpl/src/interruptions.c 2015/01/27 14:18:08 1.153 +++ rpl/src/interruptions.c 2015/07/21 12:22:16 1.159 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.1.20 + RPL/2 (R) version 4.1.22 Copyright (C) 1989-2015 Dr. BERTRAND Joël This file is part of RPL/2. @@ -1265,6 +1265,7 @@ liberation_threads(struct_processus *s_e # endif liberation_contexte_cas(s_etat_processus); + liberation_allocateur_buffer(s_etat_processus); sys_free(s_etat_processus); s_etat_processus = candidat; @@ -3151,6 +3152,7 @@ creation_queue_signaux(struct_processus return; } + (*s_queue_signaux).controle = getpid(); return; } @@ -3183,7 +3185,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