--- rpl/src/bibliotheques_externes.c 2010/01/27 22:22:09 1.2 +++ rpl/src/bibliotheques_externes.c 2010/04/17 18:57:35 1.7 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.10 + RPL/2 (R) version 4.0.14 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -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) {