信号量被定义为静态变量
static int semaphore = -1;
我正在尝试发布到这个信号量
sem_post(&semaphore);
以这种方式创建的线程中有一个等待信号量:
pthread_create(&tid, NULL, start, NULL);
和
static void *start(void *context)
{
// ...
sem_init(&semaphore, 0, 0);
sem_wait(&semaphore);
// ...
return NULL;
}
不知何故,等待信号量不受信号量发布的影响。如果我从开始例程发布信号量,一切都很好。
问题是什么?