--- rpl/src/rpl.c 2011/09/20 07:16:40 1.89 +++ rpl/src/rpl.c 2011/09/20 08:56:24 1.90 @@ -191,12 +191,7 @@ rplinit(int argc, char *argv[], unsigned &attributs_mutex); pthread_mutexattr_destroy(&attributs_mutex); - pthread_mutexattr_init(&attributs_mutex); - pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL); - pthread_mutex_init(&((*s_etat_processus).mutex_fork), - &attributs_mutex); - pthread_mutexattr_destroy(&attributs_mutex); - pthread_mutex_lock(&((*s_etat_processus).mutex_fork)); + sem_init(&((*s_etat_processus).semaphore_fork), 0, 0); pthread_mutexattr_init(&attributs_mutex); pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL); @@ -3474,8 +3469,8 @@ rplinit(int argc, char *argv[], unsigned pthread_mutex_destroy(&((*s_etat_processus).mutex)); pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation)); - pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)); - pthread_mutex_destroy(&((*s_etat_processus).mutex_fork)); + sem_post(&((*s_etat_processus).semaphore_fork)); + sem_destroy(&((*s_etat_processus).semaphore_fork)); free((*s_etat_processus).localisation);