Как инициализировать двоичный семафор в C
всправочная страница похоже, что даже если вы инициализируете семафор значением 1:
sem_init(&mySem, 0, 1);
Он все еще может быть увеличен до значения больше 1 с несколькими вызовами
sem_post(&mySem);
Но в этомпример кода комментарий кажется другим:
sem_init(&mutex, 0, 1); /* initialize mutex to 1 - binary semaphore */
Можно ли инициализировать строго двоичный семафор в C?
Примечание. Причиной для этого вместо использования мьютекса в этом случае является то, что sem_post и sem_wait могут вызываться разными потоками.