--- rpl/src/bibliotheques_externes.c 2011/08/09 11:31:28 1.33 +++ rpl/src/bibliotheques_externes.c 2011/09/14 17:55:59 1.34 @@ -161,41 +161,19 @@ chargement_bibliotheque(struct_processus } } -# ifndef SEMAPHORES_NOMMES - if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) + if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return(NULL); } -# else - if (sem_post((*s_etat_processus).semaphore_fork) != 0) - { - (*s_etat_processus).erreur_systeme = d_es_processus; - return(NULL); - } -# endif (*onloading)(&rpl_arguments); -# ifndef SEMAPHORES_NOMMES - while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1) - { - if (errno != EINTR) - { - (*s_etat_processus).erreur_systeme = d_es_processus; - return(NULL); - } - } -# else - while(sem_wait((*s_etat_processus).semaphore_fork) == -1) + if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) { - if (errno != EINTR) - { - (*s_etat_processus).erreur_systeme = d_es_processus; - return(NULL); - } + (*s_etat_processus).erreur_systeme = d_es_processus; + return(NULL); } -# endif if ((*s_etat_processus).profilage == d_vrai) { @@ -591,41 +569,19 @@ retrait_bibliotheque(struct_processus *s } } -# ifndef SEMAPHORES_NOMMES - if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) + if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return(d_erreur); } -# else - if (sem_post((*s_etat_processus).semaphore_fork) != 0) - { - (*s_etat_processus).erreur_systeme = d_es_processus; - return(d_erreur); - } -# endif (*onclosing)(&rpl_arguments); -# ifndef SEMAPHORES_NOMMES - while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1) - { - if (errno != EINTR) - { - (*s_etat_processus).erreur_systeme = d_es_processus; - return(d_erreur); - } - } -# else - while(sem_wait((*s_etat_processus).semaphore_fork) == -1) + if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) { - if (errno != EINTR) - { - (*s_etat_processus).erreur_systeme = d_es_processus; - return(d_erreur); - } + (*s_etat_processus).erreur_systeme = d_es_processus; + return(d_erreur); } -# endif if ((*s_etat_processus).profilage == d_vrai) { @@ -1177,41 +1133,19 @@ execution_fonction_de_bibliotheque(struc } } -# ifndef SEMAPHORES_NOMMES - if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) - { - (*s_etat_processus).erreur_systeme = d_es_processus; - return(d_faux); - } -# else - if (sem_post((*s_etat_processus).semaphore_fork) != 0) + if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return(d_faux); } -# endif (*fonction)(&rpl_arguments); -# ifndef SEMAPHORES_NOMMES - while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1) + if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) { - if (errno != EINTR) - { - (*s_etat_processus).erreur_systeme = d_es_processus; - return(d_faux); - } - } -# else - while(sem_wait((*s_etat_processus).semaphore_fork) == -1) - { - if (errno != EINTR) - { - (*s_etat_processus).erreur_systeme = d_es_processus; - return(d_faux); - } + (*s_etat_processus).erreur_systeme = d_es_processus; + return(d_faux); } -# endif if ((*s_etat_processus).profilage == d_vrai) {