--- rpl/src/instructions_a5.c 2013/05/23 12:45:08 1.48 +++ rpl/src/instructions_a5.c 2013/05/28 22:09:55 1.49 @@ -272,7 +272,8 @@ instruction_alarm(struct_processus *s_et scrutation_injection(s_etat_processus); - if (pthread_mutex_lock(&((*s_etat_processus).mutex)) != 0) + if (pthread_mutex_lock(&((*s_etat_processus) + .mutex_interruptions)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -283,15 +284,16 @@ instruction_alarm(struct_processus *s_et affectation_interruptions_logicielles(s_etat_processus); } - if ((*s_etat_processus).nombre_interruptions_en_queue != 0) + if (pthread_mutex_unlock(&((*s_etat_processus) + .mutex_interruptions)) != 0) { - traitement_interruptions_logicielles(s_etat_processus); + (*s_etat_processus).erreur_systeme = d_es_processus; + return; } - if (pthread_mutex_unlock(&((*s_etat_processus).mutex)) != 0) + if ((*s_etat_processus).nombre_interruptions_en_queue != 0) { - (*s_etat_processus).erreur_systeme = d_es_processus; - return; + traitement_interruptions_logicielles(s_etat_processus); } gettimeofday(&fin_interruption, NULL);