--- rpl/src/interruptions.c 2011/09/20 14:36:29 1.79 +++ rpl/src/interruptions.c 2011/09/20 15:45:53 1.80 @@ -1125,7 +1125,7 @@ liberation_threads(struct_processus *s_e sem_destroy(&((*s_etat_processus).semaphore_fork)); # else sem_post((*s_etat_processus).semaphore_fork); - sem_destroy2((*s_etat_processus).semaphore_fork, getpid()); + sem_close((*s_etat_processus).semaphore_fork); # endif liberation_contexte_cas(s_etat_processus); @@ -1388,7 +1388,11 @@ verrouillage_gestionnaire_signaux(struct if (pthread_mutex_lock(&mutex_liste_threads) != 0) { +# ifndef SEMAPHORES_NOMMES sem_wait(&((*s_etat_processus).semaphore_fork)); +# else + sem_wait((*s_etat_processus).semaphore_fork); +# endif BUG(1, uprintf("Lock error !\n")); return; } @@ -2554,7 +2558,7 @@ envoi_signal_processus(pid_t pid, enum s } } # else - if ((semaphore = sem_open2(pid)) == SEM_FAILED) + if ((semaphore = sem_open2(pid, SEM_QUEUE)) == SEM_FAILED) { return(1); } @@ -2769,7 +2773,7 @@ creation_queue_signaux(struct_processus # ifndef SEMAPHORES_NOMMES sem_init(&((*s_queue_signaux).semaphore), 1, 1); # else - if ((semaphore_queue_signaux = sem_init2(1, getpid())) + if ((semaphore_queue_signaux = sem_init2(1, getpid(), SEM_QUEUE)) == SEM_FAILED) { (*s_etat_processus).erreur_systeme = d_es_processus; @@ -2981,7 +2985,7 @@ destruction_queue_signaux(struct_process sem_destroy(&((*s_queue_signaux).semaphore)); # else sem_close(semaphore_queue_signaux); - sem_destroy2(semaphore_queue_signaux, getpid()); + sem_destroy2(semaphore_queue_signaux, getpid(), SEM_QUEUE); # endif if (munmap(s_queue_signaux, sizeof(struct_queue_signaux)) != 0)