在 Linux 中,futex 具有以下签名
long futex(uint32_t *uaddr, int futex_op, uint32_t val, const struct timespec *timeout)
,所以我可以说syscall(SYS_futex, &m_address, FUTEX_WAIT_PRIVATE, 1, nullptr);
如果 m_address 的值为 1,哪个会暂停当前线程。
我想知道的是如何在 Windows 中执行此操作。
的签名BOOL WaitOnAddress(volatile VOID *Address, PVOID CompareAddress, SIZE_T AddressSize, DWORD dwMilliseconds)
。没有价值的选择。我是否必须创建一个具有常量值的变量并将其传递给 CompareAddress 或者我错过了什么?