--- rpl/src/interruptions.c 2016/03/29 12:27:35 1.176 +++ rpl/src/interruptions.c 2016/04/01 13:33:27 1.178 @@ -106,7 +106,6 @@ thread_surveillance_signaux(void *argume break; } - sem_post(semaphore_arret_signalisation); sem_post(semaphore_signalisation); nombre_signaux_envoyes = 0; @@ -138,6 +137,7 @@ thread_surveillance_signaux(void *argume } sem_post(semaphore_queue_signaux); + sem_post(semaphore_arret_signalisation); // Dans un second temps, on balaye toutes les queues de signaux // des threads du processus courant. @@ -2494,6 +2494,11 @@ scrutation_interruptions(struct_processu return; } } + + if ((*s_queue_signaux).requete_arret == d_vrai) + { + break; + } } sem_post(semaphore_queue_signaux);