version 1.63, 2012/12/13 16:59:41
|
version 1.68, 2013/02/26 19:56:12
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.11 |
RPL/2 (R) version 4.1.12 |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
Copyright (C) 1989-2013 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 95 evaluation(struct_processus *s_etat_proc
|
Line 95 evaluation(struct_processus *s_etat_proc
|
|
|
unsigned long k; |
unsigned long k; |
unsigned long l; |
unsigned long l; |
unsigned long n; |
|
unsigned long niveau_initial; |
unsigned long niveau_initial; |
unsigned long nombre_termes; |
unsigned long nombre_termes; |
unsigned long registre_hauteur_pile_operationnelle; |
unsigned long registre_hauteur_pile_operationnelle; |
Line 188 evaluation(struct_processus *s_etat_proc
|
Line 187 evaluation(struct_processus *s_etat_proc
|
.pointeur_variable_courante).nom, |
.pointeur_variable_courante).nom, |
(*(*s_etat_processus) |
(*(*s_etat_processus) |
.pointeur_variable_courante) |
.pointeur_variable_courante) |
.variable_partagee, 'E') == d_vrai) |
.variable_partagee, 'E') != NULL) |
{ |
{ |
presence_variable = d_vrai; |
presence_variable = d_vrai; |
presence_variable_partagee = d_vrai; |
presence_variable_partagee = d_vrai; |
Line 2314 evaluation(struct_processus *s_etat_proc
|
Line 2313 evaluation(struct_processus *s_etat_proc
|
.pointeur_variable_courante).nom, |
.pointeur_variable_courante).nom, |
(*(*s_etat_processus) |
(*(*s_etat_processus) |
.pointeur_variable_courante).variable_partagee, |
.pointeur_variable_courante).variable_partagee, |
'E') == d_vrai) |
'E') != NULL) |
{ |
{ |
// Une variable partagée existe. |
// Une variable partagée existe. |
|
|
Line 6340 evaluation(struct_processus *s_etat_proc
|
Line 6339 evaluation(struct_processus *s_etat_proc
|
.pointeur_variable_courante).nom, |
.pointeur_variable_courante).nom, |
(*(*s_etat_processus) |
(*(*s_etat_processus) |
.pointeur_variable_courante) |
.pointeur_variable_courante) |
.variable_partagee, 'E') == d_vrai) |
.variable_partagee, 'E') != NULL) |
{ |
{ |
presence_variable = d_vrai; |
presence_variable = d_vrai; |
presence_variable_partagee = d_vrai; |
presence_variable_partagee = d_vrai; |
Line 6860 evaluation(struct_processus *s_etat_proc
|
Line 6859 evaluation(struct_processus *s_etat_proc
|
.pointeur_variable_courante).nom, |
.pointeur_variable_courante).nom, |
(*(*s_etat_processus) |
(*(*s_etat_processus) |
.pointeur_variable_courante) |
.pointeur_variable_courante) |
.variable_partagee, 'E') == d_vrai) |
.variable_partagee, 'E') != NULL) |
{ |
{ |
liberation(s_etat_processus, |
liberation(s_etat_processus, |
s_objet_elementaire); |
s_objet_elementaire); |
Line 7148 evaluation(struct_processus *s_etat_proc
|
Line 7147 evaluation(struct_processus *s_etat_proc
|
return(d_erreur); |
return(d_erreur); |
} |
} |
|
|
#warning A FIXER |
|
#if 0 |
|
if (pthread_mutex_lock(&((*(*s_etat_processus) |
|
.s_liste_variables_partagees).mutex)) != 0) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
return(d_erreur); |
|
} |
|
|
|
for(n = 0; n < (*(*s_etat_processus).s_liste_variables_partagees) |
|
.nombre_variables; n++) |
|
{ |
|
if ((*(*s_etat_processus).s_liste_variables_partagees).table[n] |
|
.niveau > (*s_etat_processus).niveau_courant) |
|
{ |
|
if (retrait_variable_partagee(s_etat_processus, |
|
(*(*s_etat_processus).s_liste_variables_partagees) |
|
.table[n].nom, (*(*s_etat_processus) |
|
.s_liste_variables_partagees).table[n] |
|
.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(d_erreur); |
|
} |
|
|
|
if (presence_egalite == d_vrai) |
|
{ |
|
liberation(s_etat_processus, s_objet_evalue); |
|
} |
|
|
|
(*s_etat_processus).instruction_courante = |
|
instruction_courante; |
|
(*s_etat_processus).mode_execution_programme = |
|
registre_mode_execution_programme; |
|
return(d_erreur); |
|
} |
|
} |
|
} |
|
|
|
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
|
.s_liste_variables_partagees).mutex)) != 0) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
return(d_erreur); |
|
} |
|
#endif |
|
|
|
if ((*s_etat_processus).var_volatile_requete_arret != 0) |
if ((*s_etat_processus).var_volatile_requete_arret != 0) |
{ |
{ |
// Restauration de la pile système |
// Restauration de la pile système |