在C11中,cnd_timedwait
函数的定义如下:
当发生虚假唤醒时,函数将返回thrd_success
还是thrd_error
?
尽管据我所知,从技术上讲,虚假唤醒并不是错误。
最佳答案
如果cnd_timedwait
可以告知唤醒是虚假的,则不会这样做。它不会只是为了欺骗您而进行虚假的唤醒。之所以会发生这种情况,是因为在计划了唤醒之后但在唤醒线程无法执行任何操作之前,条件的值可以更改。
由于cnd_timedwait
无法判断返回是否是虚假的,因此它的返回值不能反射(reflect)该事实。这是正常的成功返回。您的首要任务是验证条件。
关于c - 虚假唤醒的返回值是多少?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59564596/