Como inicializar um semáforo binário em C
Noman page parece que mesmo se você inicializar um semáforo com um valor igual a um:
sem_init(&mySem, 0, 1);
Pode ainda ser incrementado para um valor maior que 1 com várias chamadas para
sem_post(&mySem);
Mas nestecode example o comentário parece pensar de forma diferente:
sem_init(&mutex, 0, 1); /* initialize mutex to 1 - binary semaphore */
possível inicializar um semáforo estritamente binário em
Nota: O motivo para fazer isso, em vez de usar um mutex, neste caso, é o sem_post e o sem_wait pode ser chamado por segmentos diferente