【发布时间】:2022-12-13 00:39:56
【问题描述】:
对我来说,使用 g++,这会中断(无论我什么时候输入 chrono,它都会永远挂起)。但在 Windows 上它工作正常(睡 1 秒):
#include <shared_mutex>
#include <iostream>
int main(int argc, char **argv) {
std::shared_timed_mutex mut;
mut.lock();
std::cout << "before" << std::endl;
mut.try_lock_shared_for(std::chrono::duration<double>(1));
std::cout << "after" << std::endl;
}
我应该期望在 linux 上,定时互斥量不能正常工作吗?
【问题讨论】:
-
您绝对应该期望在 Linux 上,标准未定义的行为可能与在 Windows 上不同。这首先是 UB 的原因之一。