--- rpl/src/bibliotheques_externes.c 2010/04/07 13:45:00 1.6 +++ rpl/src/bibliotheques_externes.c 2010/04/17 18:57:35 1.7 @@ -161,14 +161,23 @@ chargement_bibliotheque(struct_processus } } +# ifndef SEMAPHORES_NOMMES if (sem_post(&((*s_etat_processus).semaphore_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) @@ -177,6 +186,16 @@ chargement_bibliotheque(struct_processus return(NULL); } } +# else + while(sem_wait((*s_etat_processus).semaphore_fork) == -1) + { + if (errno != EINTR) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return(NULL); + } + } +# endif if ((*s_etat_processus).profilage == d_vrai) { @@ -557,14 +576,23 @@ retrait_bibliotheque(struct_processus *s } } +# ifndef SEMAPHORES_NOMMES if (sem_post(&((*s_etat_processus).semaphore_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) @@ -573,6 +601,16 @@ retrait_bibliotheque(struct_processus *s return(d_erreur); } } +# else + while(sem_wait((*s_etat_processus).semaphore_fork) == -1) + { + if (errno != EINTR) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return(d_erreur); + } + } +# endif if ((*s_etat_processus).profilage == d_vrai) { @@ -1122,14 +1160,23 @@ 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) + { + (*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 (errno != EINTR) @@ -1138,6 +1185,16 @@ execution_fonction_de_bibliotheque(struc 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); + } + } +# endif if ((*s_etat_processus).profilage == d_vrai) {