lon*_*kit 3 c++ multithreading pthreads
我在Linux中使用pthread实现手动重置事件,类似于Windows中的WaitForSingleEvent.我找到了这篇文章
并遵循它,但有一件事让我困惑:
void mrevent_wait(struct mrevent *ev) {
pthread_mutex_lock(&ev->mutex);
while (!ev->triggered)
pthread_cond_wait(&ev->cond, &ev->mutex);
pthread_mutex_unlock(&ev->mutex);
}
Run Code Online (Sandbox Code Playgroud)
我害怕的是当pthread_cond_wait释放互斥锁时,那么pthread_mutex_unlock可能会出现未定义的行为(这种事情会让我发疯,为什么他们不会处理它:-D)
谢谢.