--- rpl/src/bibliotheques_externes.c 2011/09/14 17:55:59 1.34 +++ rpl/src/bibliotheques_externes.c 2011/09/20 08:56:23 1.35 @@ -161,7 +161,7 @@ chargement_bibliotheque(struct_processus } } - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return(NULL); @@ -169,7 +169,7 @@ chargement_bibliotheque(struct_processus (*onloading)(&rpl_arguments); - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return(NULL); @@ -569,7 +569,7 @@ retrait_bibliotheque(struct_processus *s } } - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return(d_erreur); @@ -577,7 +577,7 @@ retrait_bibliotheque(struct_processus *s (*onclosing)(&rpl_arguments); - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return(d_erreur); @@ -1133,7 +1133,7 @@ execution_fonction_de_bibliotheque(struc } } - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return(d_faux); @@ -1141,7 +1141,7 @@ execution_fonction_de_bibliotheque(struc (*fonction)(&rpl_arguments); - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return(d_faux);