--- rpl/src/semaphores.c 2011/09/18 12:42:50 1.29 +++ rpl/src/semaphores.c 2011/09/18 18:06:01 1.30 @@ -61,6 +61,7 @@ sem_init2(unsigned int valeur, pid_t pid sem_t *semaphore; unsigned char *chemin; + unsigned int i; if ((chemin = nom_segment_semaphore(pid)) == NULL) { @@ -70,6 +71,15 @@ sem_init2(unsigned int valeur, pid_t pid semaphore = sem_open(chemin, O_CREAT, (S_IRUSR | S_IWUSR), valeur); free(chemin); + for(i = 0; i < valeur; i++) + { + if (sem_post(semaphore) != 0) + { + sem_close(semaphore); + return(SEM_FAILED); + } + } + return(semaphore); }