--- rpl/src/analyse.c 2013/04/01 15:29:33 1.85 +++ rpl/src/analyse.c 2013/05/23 12:45:08 1.87 @@ -964,8 +964,6 @@ analyse_instruction(struct_processus *s_ void analyse(struct_processus *s_etat_processus, void (*fonction)()) { - static logical1 initialisation = d_faux; - real8 attente; real8 pourcentage; real8 temps_cpu; @@ -1161,9 +1159,18 @@ analyse(struct_processus *s_etat_process { if ((*s_etat_processus).test_instruction == 'N') { - if ((*s_etat_processus).nombre_interruptions_non_affectees != 0) + if (pthread_mutex_lock(&(*s_etat_processus).mutex) != 0) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + } + else { - affectation_interruptions_logicielles(s_etat_processus); + if ((*s_etat_processus).nombre_interruptions_non_affectees != 0) + { + affectation_interruptions_logicielles(s_etat_processus); + } + + pthread_mutex_unlock(&(*s_etat_processus).mutex); } if (((*s_etat_processus).nombre_interruptions_en_queue != 0) && @@ -1196,7 +1203,7 @@ analyse(struct_processus *s_etat_process gettimeofday(&horodatage_final, NULL); - if (initialisation == d_vrai) + if ((*s_etat_processus).initialisation_scheduler == d_vrai) { temps_reel = ((real8) (horodatage_final.tv_sec - horodatage_initial.tv_sec)) + @@ -1253,7 +1260,7 @@ analyse(struct_processus *s_etat_process } else { - initialisation = d_vrai; + (*s_etat_processus).initialisation_scheduler = d_vrai; horodatage_initial = horodatage_final; usage_initial = usage_final; @@ -1261,7 +1268,7 @@ analyse(struct_processus *s_etat_process } else { - initialisation = d_faux; + (*s_etat_processus).initialisation_scheduler = d_faux; } /*