Linux平台上c++11的std::condition_variable实现存在问题?

2020-12-18 01:34

阅读:411

标签:解决   flow   question   存在   linux   导致   超时   系统   tac   

最近在跨平台移植代码的过程中遇到一个比较奇怪的问题,使用C++11特性实现的一段代码在windows平台跑的好好的,到了Linux平台上就会在特定的条件下卡住。
仔细定位了一下发现Linux平台实现condition variable的wait_until接口里面使用了绝对时间,虽然参数是steady_clock,导致定时器跑到这里之后将系统时间调整到之前的一段时间就很长时间都不会超时。
上网查了一下说是Linux上的库实现的问题,windows跟boost都没这个问题。

解决办法参考:https://stackoverflow.com/questions/51005267/how-do-i-deal-with-the-system-clock-changing-while-waiting-on-a-stdcondition-v

Linux平台上c++11的std::condition_variable实现存在问题?

标签:解决   flow   question   存在   linux   导致   超时   系统   tac   

原文地址:https://www.cnblogs.com/csstudy/p/14099339.html


评论


亲,登录后才可以留言!