std::condition_variable 的信号丢失问题
原文中文,约6900字,阅读约需17分钟。发表于: 。背景 这篇分享拖更了好久了。问题起源于去年我们项目组接入 opentelemetry-cpp 的时候,在进程优雅退出的时候偶现超时,虽然可以直接kill进程没啥影响但是退出不“优雅”的话总归会破坏发布流程,增加人工介入的成本。这里记录一下问题可能其他的组件有类似的用法也会有相似的问题。
这篇文章讨论了在退出阶段中可能出现的长时间等待的问题。作者提出了两种解决方案,一种是加入额外的锁来保护关键变量,另一种是缩短等待时间后重试。作者选择了后一种方案,并表示已经合并到项目中。此外,文章还提到了与线程安全相关的问题,并提出了解决方法。