Cómo inicializar un semáforo binario en C
En elman page parece que incluso si inicializa un semáforo a un valor de uno:
sem_init(&mySem, 0, 1);
Todavía podría incrementarse a un valor mayor que 1 con múltiples llamadas a
sem_post(&mySem);
Pero en estecode ejemplo el comentario parece pensar de manera diferente:
sem_init(&mutex, 0, 1); /* initialize mutex to 1 - binary semaphore */
Es posible inicializar un semáforo estrictamente binario en C?
Nota: La razón para hacer esto en lugar de usar un mutex en este caso es sem_post y sem_wait pueden ser llamados por diferentes hilos.