【发布时间】:2014-02-10 12:08:17
【问题描述】:
我正在尝试将我的一个 linux 项目移植到 Windows。
在项目中,我使用 pthread_cond_t,为了能够等待,需要一个 pthread_mutex_t。
它们都隐藏在不同的类中,它们的锁定/等待都应该支持 timedwait。
现在,在 linux 中,这一切都记录在案并且很容易,但是在 Windows 上,我没有找到任何文档,也没有任何与之相关的问题。
我知道有 CONDITION_VARIABLEs,但它们仅适用于 CRITICAL_SECTIONs,根据 Windows 文档无法定时等待,当然还有 CONDITION_VARIABLEs 不能使用的 HANDLE mutex。
我不想使用任何 boost 或 ace 内置对象或任何东西,我正在寻找纯操作系统功能。
这里有什么我遗漏的吗?
【问题讨论】:
-
SleepConditionVariableCS 需要超时,相当于 pthread_cond_timedwait()。
-
我知道,但是 CONDITION_VARIABLE 在一个类中,而 CRITICAL_SECTION 在一个类中,但 CRITICAL_SECTION 不能等待,这是必须的。
标签: c++ windows mutex condition-variable