version 1.56, 2011/06/27 09:05:01
|
version 1.61, 2011/08/30 14:19:28
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.0 |
RPL/2 (R) version 4.1.3 |
Copyright (C) 1989-2011 Dr. BERTRAND Joël |
Copyright (C) 1989-2011 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
Line 986 liberation_threads(struct_processus *s_e
|
Line 986 liberation_threads(struct_processus *s_e
|
element_courant = element_suivant; |
element_courant = element_suivant; |
} |
} |
|
|
|
element_courant = (*s_etat_processus).l_base_pile_undo; |
|
while(element_courant != NULL) |
|
{ |
|
element_suivant = (*((struct_liste_chainee *) |
|
element_courant)).suivant; |
|
|
|
pthread_mutex_trylock(&((*(*((struct_liste_chainee *) |
|
element_courant)).donnee).mutex)); |
|
pthread_mutex_unlock(&((*(*((struct_liste_chainee *) |
|
element_courant)).donnee).mutex)); |
|
liberation(s_etat_processus, |
|
(*((struct_liste_chainee *) element_courant)).donnee); |
|
free(element_courant); |
|
|
|
element_courant = element_suivant; |
|
} |
|
|
element_courant = (*s_etat_processus).l_base_pile_systeme; |
element_courant = (*s_etat_processus).l_base_pile_systeme; |
while(element_courant != NULL) |
while(element_courant != NULL) |
{ |
{ |
Line 1318 liberation_threads(struct_processus *s_e
|
Line 1335 liberation_threads(struct_processus *s_e
|
sem_destroy2((*s_etat_processus).semaphore_fork, sem_fork); |
sem_destroy2((*s_etat_processus).semaphore_fork, sem_fork); |
# endif |
# endif |
|
|
|
liberation_contexte_cas(s_etat_processus); |
free(s_etat_processus); |
free(s_etat_processus); |
|
|
s_etat_processus = candidat; |
s_etat_processus = candidat; |