--- rpl/src/instructions_s1.c 2011/09/15 17:51:43 1.38 +++ rpl/src/instructions_s1.c 2011/09/20 08:56:23 1.39 @@ -3858,8 +3858,7 @@ instruction_syseval(struct_processus *s_ longueur_ecriture = strlen((unsigned char *) (*(*l_element_courant).donnee).objet); - 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; @@ -3870,8 +3869,8 @@ instruction_syseval(struct_processus *s_ (*(*l_element_courant).donnee).objet, longueur_ecriture) != longueur_ecriture) { - while(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; @@ -3884,8 +3883,8 @@ instruction_syseval(struct_processus *s_ return; } - 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; @@ -3895,8 +3894,8 @@ instruction_syseval(struct_processus *s_ while(write_atomic(s_etat_processus, pipes_entree[1], "\n", 1) != 1) { - 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; @@ -3909,16 +3908,15 @@ instruction_syseval(struct_processus *s_ return; } - 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) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -3945,8 +3943,7 @@ instruction_syseval(struct_processus *s_ * Récupération de la valeur de retour du processus détaché */ - 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; @@ -3954,8 +3951,7 @@ instruction_syseval(struct_processus *s_ if (waitpid(pid, &status, 0) == -1) { - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) - != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -3965,7 +3961,7 @@ instruction_syseval(struct_processus *s_ return; } - 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; @@ -3983,7 +3979,7 @@ instruction_syseval(struct_processus *s_ return; } - 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; @@ -3993,7 +3989,7 @@ instruction_syseval(struct_processus *s_ pipes_sortie[0], &(tampon[pointeur]), longueur_lecture)) > 0) { - while(pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) + while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; @@ -4013,7 +4009,7 @@ instruction_syseval(struct_processus *s_ return; } - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; @@ -4021,7 +4017,7 @@ instruction_syseval(struct_processus *s_ } } - 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; @@ -4166,7 +4162,7 @@ instruction_syseval(struct_processus *s_ return; } - 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; @@ -4183,7 +4179,7 @@ instruction_syseval(struct_processus *s_ &((*s_etat_processus).l_base_pile), s_objet_resultat) == d_erreur) { - 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; @@ -4199,7 +4195,7 @@ instruction_syseval(struct_processus *s_ return; } - 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;