version 1.116, 2012/08/22 10:47:18
|
version 1.117, 2012/09/15 12:57:09
|
Line 251 rplinit(int argc, char *argv[], char *en
|
Line 251 rplinit(int argc, char *argv[], char *en
|
&attributs_mutex); |
&attributs_mutex); |
pthread_mutexattr_destroy(&attributs_mutex); |
pthread_mutexattr_destroy(&attributs_mutex); |
|
|
|
pthread_mutexattr_init(&attributs_mutex); |
|
pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_RECURSIVE); |
|
pthread_mutex_init(&mutex_sections_critiques, &attributs_mutex); |
|
pthread_mutexattr_destroy(&attributs_mutex); |
|
|
# ifndef SEMAPHORES_NOMMES |
# ifndef SEMAPHORES_NOMMES |
sem_init(&((*s_etat_processus).semaphore_fork), 0, 0); |
sem_init(&((*s_etat_processus).semaphore_fork), 0, 0); |
# else |
# else |
Line 1928 rplinit(int argc, char *argv[], char *en
|
Line 1933 rplinit(int argc, char *argv[], char *en
|
gettimeofday(&((*s_etat_processus).horodatage_profilage), NULL); |
gettimeofday(&((*s_etat_processus).horodatage_profilage), NULL); |
|
|
(*s_etat_processus).liste_mutexes = NULL; |
(*s_etat_processus).liste_mutexes = NULL; |
|
(*s_etat_processus).sections_critiques = 0; |
|
|
(*s_etat_processus).test_instruction = 'N'; |
(*s_etat_processus).test_instruction = 'N'; |
(*s_etat_processus).nombre_arguments = 0; |
(*s_etat_processus).nombre_arguments = 0; |
Line 2910 rplinit(int argc, char *argv[], char *en
|
Line 2916 rplinit(int argc, char *argv[], char *en
|
} |
} |
} |
} |
|
|
|
for(i = 0; i < (*s_etat_processus).sections_critiques; i++) |
|
{ |
|
pthread_mutex_unlock(&mutex_sections_critiques); |
|
} |
|
|
liberation(s_etat_processus, (*s_etat_processus).at_exit); |
liberation(s_etat_processus, (*s_etat_processus).at_exit); |
liberation(s_etat_processus, (*s_etat_processus).at_poke); |
liberation(s_etat_processus, (*s_etat_processus).at_poke); |
|
|
Line 3703 rplinit(int argc, char *argv[], char *en
|
Line 3714 rplinit(int argc, char *argv[], char *en
|
|
|
pthread_mutex_destroy(&((*s_etat_processus).mutex)); |
pthread_mutex_destroy(&((*s_etat_processus).mutex)); |
pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation)); |
pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation)); |
|
pthread_mutex_destroy(&mutex_sections_critiques); |
|
|
# ifndef SEMAPHORES_NOMMES |
# ifndef SEMAPHORES_NOMMES |
sem_post(&((*s_etat_processus).semaphore_fork)); |
sem_post(&((*s_etat_processus).semaphore_fork)); |
Line 3715 rplinit(int argc, char *argv[], char *en
|
Line 3727 rplinit(int argc, char *argv[], char *en
|
|
|
free((*s_etat_processus).localisation); |
free((*s_etat_processus).localisation); |
|
|
pthread_mutex_destroy(&mutex_liste_threads); |
|
pthread_mutex_destroy(&mutex_gestionnaires_signaux_atomique); |
|
|
|
# ifndef SEMAPHORES_NOMMES |
# ifndef SEMAPHORES_NOMMES |
sem_post(&semaphore_gestionnaires_signaux); |
sem_post(&semaphore_gestionnaires_signaux); |
sem_destroy(&semaphore_gestionnaires_signaux); |
sem_destroy(&semaphore_gestionnaires_signaux); |