Windows GitHub Runner编译含std::unique_lock的程序运行异常求助
Windows GitHub Runner编译的含std::unique_lock程序运行异常问题
我在部署Windows GitHub Runner编译的可执行文件时遇到严重问题:所有使用std::unique_lock<std::mutex>的程序均不可靠!编译过程正常,但运行时会意外失败。
以下“互斥量测试”程序在标准Windows机器上编译可生成完全正常的可执行文件:
#include "stdio.h" #include <future> int main() { printf("main enter\n"); std::mutex m_mutex; printf("Created mutex\n"); std::unique_lock<std::mutex> lock(m_mutex); printf("Instantiated lock\n"); printf("main exit\n"); }
但下载并运行GitHub Runner生成的exe文件时,程序会在创建锁的环节失败(打印“Created mutex”后退出或挂起)。
我已创建一个极简仓库用于复现该问题,GitHub Runner生成的可执行文件可在仓库的工件中获取。
这个问题给我带来了很大困扰……我发布Python/Pybind11库(直接从GH Runner工件部署多个原生wheel)1个月后才发现该问题
我有几个相关问题:
- 我是否犯了明显错误?
- 是否有其他人遇到过这个问题?我几乎可以肯定我不是唯一遇到该问题的人,因为这几乎是使用互斥量的入门程序。我确定该问题从7月3日起就存在,因为我在当天发布的Python库版本中后续发现了这个问题。
- 有人知道该问题或相关问题是否已在GitHub上提交?如果没有,我应该在哪个最佳位置提交?
内容的提问来源于stack exchange,提问作者Pascal T.
相关产品推荐
相关产品推荐

