--- rpl/src/analyse.c 2011/11/30 17:21:07 1.64 +++ rpl/src/analyse.c 2012/09/15 12:57:09 1.73 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.5 - Copyright (C) 1989-2011 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.10 + Copyright (C) 1989-2012 Dr. BERTRAND Joël This file is part of RPL/2. @@ -487,6 +487,7 @@ initialisation_instructions(struct_proce INSTRUCTION("PMAX", instruction_pmax); INSTRUCTION("PMIN", instruction_pmin); INSTRUCTION("POKE", instruction_poke); + INSTRUCTION("POLL", instruction_poll); INSTRUCTION("PPAR", instruction_ppar); INSTRUCTION("PRMD", instruction_prmd); INSTRUCTION("PRST", instruction_prst); @@ -676,6 +677,7 @@ initialisation_instructions(struct_proce INSTRUCTION("PSDEV", instruction_psdev); INSTRUCTION("PURGE", instruction_purge); INSTRUCTION("RDATE", instruction_rdate); + INSTRUCTION("REGEX", instruction_regex); INSTRUCTION("RELAX", instruction_relax); INSTRUCTION("RFUSE", instruction_rfuse); INSTRUCTION("RSTOP", instruction_rstop); @@ -838,6 +840,7 @@ initialisation_instructions(struct_proce INSTRUCTION("CLRCNTXT", instruction_clrcntxt); INSTRUCTION("CLRSMPHR", instruction_clrsmphr); INSTRUCTION("CONTINUE", instruction_continue); + INSTRUCTION("CRITICAL", instruction_critical); INSTRUCTION("DUPCNTXT", instruction_dupcntxt); INSTRUCTION("FUNCTION", instruction_function); INSTRUCTION("IMPLICIT", instruction_implicit); @@ -1019,6 +1022,22 @@ analyse(struct_processus *s_etat_process } } + /* + * Verrou pour les sections_critiques + */ + + if (pthread_mutex_lock(&mutex_sections_critiques) != 0) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return; + } + + if (pthread_mutex_unlock(&mutex_sections_critiques) != 0) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return; + } + scrutation_injection(s_etat_processus); if (fonction == NULL)