#include <semaphore.h>
sem_t* x;
int main ()
{
x = sem_open("x", O_CREAT, 0, 0);;
sem_wait(x); sem_wait(x); sem_wait(x);
std::cout << "\ndone\n";
}
Этот код не должен даже проходить первый sem_wait()
, но в моей системе он достигает конца main()
. Все, что я прочитал, например здесь и здесь , говорит о том, что хотя Mac OS X не поддерживает sem_init()
, оно поддерживает sem_open()
. Однако использование sem_open()
, как указано выше, не устранило проблему. Я использую OS X 10.5.7.