version 1.45, 2013/03/20 17:11:44
|
version 1.60, 2015/09/18 13:41:11
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.13 |
RPL/2 (R) version 4.1.23 |
Copyright (C) 1989-2013 Dr. BERTRAND Joël |
Copyright (C) 1989-2015 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 449 recherche_variable_partagee(struct_proce
|
Line 449 recherche_variable_partagee(struct_proce
|
{ |
{ |
// Caractère hors de l'alphabet des variables |
// Caractère hors de l'alphabet des variables |
|
|
|
pthread_mutex_unlock(&((*l_variable_courante).mutex_feuille)); |
(*s_etat_processus).erreur_systeme = d_es_variable_introuvable; |
(*s_etat_processus).erreur_systeme = d_es_variable_introuvable; |
return(NULL); |
return(NULL); |
} |
} |
Line 456 recherche_variable_partagee(struct_proce
|
Line 457 recherche_variable_partagee(struct_proce
|
if ((*l_variable_courante).noeuds[pointeur] == NULL) |
if ((*l_variable_courante).noeuds[pointeur] == NULL) |
{ |
{ |
// Le chemin de la variable candidate n'existe pas. |
// Le chemin de la variable candidate n'existe pas. |
|
|
|
pthread_mutex_unlock(&((*l_variable_courante).mutex_feuille)); |
(*s_etat_processus).erreur_systeme = d_es_variable_introuvable; |
(*s_etat_processus).erreur_systeme = d_es_variable_introuvable; |
return(NULL); |
return(NULL); |
} |
} |
Line 463 recherche_variable_partagee(struct_proce
|
Line 466 recherche_variable_partagee(struct_proce
|
if (pthread_mutex_lock(&((*(*l_variable_courante).noeuds[pointeur]) |
if (pthread_mutex_lock(&((*(*l_variable_courante).noeuds[pointeur]) |
.mutex_feuille)) != 0) |
.mutex_feuille)) != 0) |
{ |
{ |
|
pthread_mutex_unlock(&((*l_variable_courante).mutex_feuille)); |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return(NULL); |
return(NULL); |
} |
} |
Line 479 recherche_variable_partagee(struct_proce
|
Line 483 recherche_variable_partagee(struct_proce
|
|
|
if ((*l_variable_courante).feuille != NULL) |
if ((*l_variable_courante).feuille != NULL) |
{ |
{ |
// Il existe au moins une variable statique du nom requis. |
// Il existe au moins une variable partagée du nom requis. |
|
|
l_element_courant = (*l_variable_courante).feuille; |
l_element_courant = (*l_variable_courante).feuille; |
|
|
Line 656 retrait_variable_partagee(struct_process
|
Line 660 retrait_variable_partagee(struct_process
|
liberation(s_etat_processus, (*(*l_element_a_supprimer).variable) |
liberation(s_etat_processus, (*(*l_element_a_supprimer).variable) |
.objet); |
.objet); |
free((*(*l_element_a_supprimer).variable).nom); |
free((*(*l_element_a_supprimer).variable).nom); |
|
pthread_mutex_unlock(&((*(*l_element_a_supprimer).variable).mutex)); |
|
pthread_mutex_destroy(&((*(*l_element_a_supprimer).variable).mutex)); |
free((*l_element_a_supprimer).variable); |
free((*l_element_a_supprimer).variable); |
free(l_element_a_supprimer); |
free(l_element_a_supprimer); |
|
|