--- rpl/src/instructions_f1.c 2010/02/10 10:14:22 1.3 +++ rpl/src/instructions_f1.c 2010/04/17 18:57:35 1.8 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.11 + RPL/2 (R) version 4.0.14 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -578,6 +578,7 @@ instruction_fleche(struct_processus *s_e } else { + // Variable partagée à utiliser // Variable partagee à créer (*s_etat_processus).erreur_systeme = d_es; @@ -585,6 +586,13 @@ instruction_fleche(struct_processus *s_e if ((s_variable_partagee.nom = malloc((strlen(s_variable.nom) + 1) * sizeof(unsigned char))) == NULL) { + if (pthread_mutex_unlock(&((*(*s_etat_processus) + .s_liste_variables_partagees).mutex)) != 0) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return; + } + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; return; @@ -631,6 +639,13 @@ instruction_fleche(struct_processus *s_e if (creation_variable_partagee(s_etat_processus, &s_variable_partagee) == d_erreur) { + if (pthread_mutex_unlock(&((*(*s_etat_processus) + .s_liste_variables_partagees).mutex)) != 0) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return; + } + return; }