--- rpl/src/analyse.c 2011/09/14 17:55:59 1.54 +++ rpl/src/analyse.c 2011/09/20 09:51:42 1.56 @@ -985,16 +985,19 @@ analyse(struct_processus *s_etat_process * On autorise l'exécution d'un fork() dans un thread concurrent. */ - 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; } - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { - (*s_etat_processus).erreur_systeme = d_es_processus; - return; + if (errno != EINTR) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return; + } } scrutation_injection(s_etat_processus);