version 1.62, 2012/10/07 21:57:48
|
version 1.64, 2012/12/13 16:59:41
|
Line 427 ajout_variable(struct_processus *s_etat_
|
Line 427 ajout_variable(struct_processus *s_etat_
|
|
|
(*(*s_etat_processus).s_arbre_variables).feuille = NULL; |
(*(*s_etat_processus).s_arbre_variables).feuille = NULL; |
(*(*s_etat_processus).s_arbre_variables).feuille_statique = NULL; |
(*(*s_etat_processus).s_arbre_variables).feuille_statique = NULL; |
|
(*(*s_etat_processus).s_arbre_variables).feuille_partagee = NULL; |
(*(*s_etat_processus).s_arbre_variables).noeuds_utilises = 0; |
(*(*s_etat_processus).s_arbre_variables).noeuds_utilises = 0; |
(*(*s_etat_processus).s_arbre_variables).indice_tableau_pere = -1; |
(*(*s_etat_processus).s_arbre_variables).indice_tableau_pere = -1; |
(*(*s_etat_processus).s_arbre_variables).noeud_pere = NULL; |
(*(*s_etat_processus).s_arbre_variables).noeud_pere = NULL; |
|
INITIALISATION_MUTEX((*(*s_etat_processus).s_arbre_variables) |
|
.mutex_feuille_partagee); |
|
|
if (((*(*s_etat_processus).s_arbre_variables).noeuds = |
if (((*(*s_etat_processus).s_arbre_variables).noeuds = |
allocation_tableau_noeuds(s_etat_processus)) == NULL) |
allocation_tableau_noeuds(s_etat_processus)) == NULL) |
Line 480 ajout_variable(struct_processus *s_etat_
|
Line 483 ajout_variable(struct_processus *s_etat_
|
.pointeurs_caracteres_variables[*ptr]]).feuille_statique |
.pointeurs_caracteres_variables[*ptr]]).feuille_statique |
= NULL; |
= NULL; |
(*(*l_variable_courante).noeuds[(*s_etat_processus) |
(*(*l_variable_courante).noeuds[(*s_etat_processus) |
|
.pointeurs_caracteres_variables[*ptr]]).feuille_partagee |
|
= NULL; |
|
(*(*l_variable_courante).noeuds[(*s_etat_processus) |
.pointeurs_caracteres_variables[*ptr]]).noeuds_utilises = 0; |
.pointeurs_caracteres_variables[*ptr]]).noeuds_utilises = 0; |
|
INITIALISATION_MUTEX((*(*l_variable_courante).noeuds |
|
[(*s_etat_processus).pointeurs_caracteres_variables[*ptr]]) |
|
.mutex_feuille_partagee); |
|
|
// Le champ noeud_pere de la structure créée pointe sur |
// Le champ noeud_pere de la structure créée pointe sur |
// la structure parente et l'indice tableau_pere correspond à la |
// la structure parente et l'indice tableau_pere correspond à la |
Line 1297 retrait_variable(struct_processus *s_eta
|
Line 1306 retrait_variable(struct_processus *s_eta
|
.feuille = NULL; |
.feuille = NULL; |
|
|
while(((*s_arbre_courant).noeuds_utilises == 0) && |
while(((*s_arbre_courant).noeuds_utilises == 0) && |
((*s_arbre_courant).feuille_statique == NULL)) |
((*s_arbre_courant).feuille_statique == NULL) && |
|
((*s_arbre_courant).feuille_partagee == NULL)) |
{ |
{ |
s_arbre_a_supprimer = s_arbre_courant; |
s_arbre_a_supprimer = s_arbre_courant; |
s_arbre_courant = (*s_arbre_courant).noeud_pere; |
s_arbre_courant = (*s_arbre_courant).noeud_pere; |
Line 1958 copie_arbre_variables(struct_processus *
|
Line 1968 copie_arbre_variables(struct_processus *
|
struct_liste_variables_statiques *l_element_statique_courant; |
struct_liste_variables_statiques *l_element_statique_courant; |
|
|
struct_variable s_variable; |
struct_variable s_variable; |
|
struct_variable_statique s_variable_statique; |
|
|
unsigned char *ptr; |
unsigned char *ptr; |
|
|
Line 2181 copie_arbre_variables(struct_processus *
|
Line 2192 copie_arbre_variables(struct_processus *
|
ptr++; |
ptr++; |
} |
} |
|
|
if (creation_variable_statique(s_nouvel_etat_processus, |
// Il faut copier la variable pour la dissocier de la variable |
(*l_element_statique_courant).variable) == d_erreur) |
// restant dans le thread parent. |
|
|
|
s_variable_statique = (*(*l_element_statique_courant).variable); |
|
|
|
if (copie_objet(s_etat_processus, s_variable_statique.objet, 'P') |
|
== NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return; |
return; |
} |
} |
|
|
if (copie_objet(s_etat_processus, (*(*l_element_statique_courant) |
if ((s_variable_statique.nom = malloc((strlen( |
.variable).objet, 'P') == NULL) |
(*(*l_element_statique_courant).variable).nom) + 1) * |
|
sizeof(unsigned char))) == NULL) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
|
return; |
|
} |
|
|
|
strcpy(s_variable_statique.nom, (*(*l_element_statique_courant) |
|
.variable).nom); |
|
|
|
if (creation_variable_statique(s_nouvel_etat_processus, |
|
&s_variable_statique) == d_erreur) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return; |
return; |