--- rpl/src/interruptions.c 2011/09/20 07:16:40 1.76 +++ rpl/src/interruptions.c 2011/09/20 08:56:24 1.77 @@ -324,8 +324,8 @@ verrouillage_threads_concurrents(struct_ == getpid()) && (pthread_equal((*((struct_thread *) (*l_element_courant).donnee)).tid, pthread_self()) == 0)) { - if (pthread_mutex_lock(&((*(*((struct_thread *) (*l_element_courant) - .donnee)).s_etat_processus).mutex_fork)) == -1) + if (sem_wait(&((*(*((struct_thread *) (*l_element_courant) + .donnee)).s_etat_processus).semaphore_fork)) == -1) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -351,9 +351,9 @@ deverrouillage_threads_concurrents(struc == getpid()) && (pthread_equal((*((struct_thread *) (*l_element_courant).donnee)).tid, pthread_self()) == 0)) { - if (pthread_mutex_unlock(&((*(*((struct_thread *) + if (sem_post(&((*(*((struct_thread *) (*l_element_courant).donnee)).s_etat_processus) - .mutex_fork)) != 0) + .semaphore_fork)) != 0) { if (pthread_mutex_unlock(&mutex_liste_threads) != 0) { @@ -1109,8 +1109,8 @@ liberation_threads(struct_processus *s_e liberation_allocateur(s_etat_processus); - pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)); - pthread_mutex_destroy(&((*s_etat_processus).mutex_fork)); + sem_post(&((*s_etat_processus).semaphore_fork)); + sem_destroy(&((*s_etat_processus).semaphore_fork)); liberation_contexte_cas(s_etat_processus); free(s_etat_processus); @@ -1298,7 +1298,7 @@ verrouillage_gestionnaire_signaux(struct { int semaphore; - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { BUG(1, uprintf("Lock error !\n")); return; @@ -1308,7 +1308,7 @@ verrouillage_gestionnaire_signaux(struct if (pthread_mutex_lock(&mutex_gestionnaires_signaux_atomique) != 0) { - pthread_mutex_lock(&((*s_etat_processus).mutex_fork)); + sem_wait(&((*s_etat_processus).semaphore_fork)); BUG(1, uprintf("Unlock error !\n")); return; } @@ -1319,7 +1319,7 @@ verrouillage_gestionnaire_signaux(struct if (sem_post(semaphore_gestionnaires_signaux) == -1) # endif { - pthread_mutex_lock(&((*s_etat_processus).mutex_fork)); + sem_wait(&((*s_etat_processus).semaphore_fork)); BUG(1, uprintf("Lock error !\n")); return; } @@ -1330,14 +1330,14 @@ verrouillage_gestionnaire_signaux(struct if (sem_getvalue(semaphore_gestionnaires_signaux, &semaphore) != 0) # endif { - pthread_mutex_lock(&((*s_etat_processus).mutex_fork)); + sem_wait(&((*s_etat_processus).semaphore_fork)); BUG(1, uprintf("Lock error !\n")); return; } if (pthread_mutex_unlock(&mutex_gestionnaires_signaux_atomique) != 0) { - pthread_mutex_lock(&((*s_etat_processus).mutex_fork)); + sem_wait(&((*s_etat_processus).semaphore_fork)); BUG(1, uprintf("Unlock error !\n")); return; } @@ -1352,7 +1352,7 @@ verrouillage_gestionnaire_signaux(struct if (pthread_mutex_lock(&mutex_liste_threads) != 0) { - pthread_mutex_lock(&((*s_etat_processus).mutex_fork)); + sem_wait(&((*s_etat_processus).semaphore_fork)); BUG(1, uprintf("Lock error !\n")); return; } @@ -1370,7 +1370,7 @@ deverrouillage_gestionnaire_signaux(stru if (pthread_mutex_lock(&mutex_gestionnaires_signaux_atomique) == -1) { - pthread_mutex_lock(&((*s_etat_processus).mutex_fork)); + sem_wait(&((*s_etat_processus).semaphore_fork)); BUG(1, uprintf("Unlock error !\n")); return; } @@ -1381,7 +1381,7 @@ deverrouillage_gestionnaire_signaux(stru if (sem_getvalue(semaphore_gestionnaires_signaux, &semaphore) != 0) # endif { - pthread_mutex_lock(&((*s_etat_processus).mutex_fork)); + sem_wait(&((*s_etat_processus).semaphore_fork)); BUG(1, uprintf("Unlock error !\n")); return; } @@ -1394,7 +1394,7 @@ deverrouillage_gestionnaire_signaux(stru { if (errno != EINTR) { - pthread_mutex_lock(&((*s_etat_processus).mutex_fork)); + sem_wait(&((*s_etat_processus).semaphore_fork)); BUG(1, uprintf("Unlock error !\n")); return; } @@ -1402,12 +1402,12 @@ deverrouillage_gestionnaire_signaux(stru if (pthread_mutex_unlock(&mutex_gestionnaires_signaux_atomique) != 0) { - pthread_mutex_lock(&((*s_etat_processus).mutex_fork)); + sem_wait(&((*s_etat_processus).semaphore_fork)); BUG(1, uprintf("Unlock error !\n")); return; } - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { BUG(1, uprintf("Unlock error !\n")); return;