我想知道在工作几个小时后可能导致应用程序因 SIGABRT 获取锁而失败的一般问题是什么?
它主要发生在 std::lock_guard<std::mutex> lock(sync);
上的一个特定类析构函数代码中
有时它发生在 boost::mutex::scoped_lock lock(mutex);
那是里面 try catch(std::exception& e)
block 。
应用程序没有可检测到的内存泄漏。使用 Boost、ZeroMQ、HiRedis。代码库很大,所以我想知道我们要寻找的主要内容是什么?什么会导致此类问题(至少在理论上)?
最佳答案
锁定/解锁损坏的互斥量? (即处理被删除的对象)可能大多数时候
同一线程中的双重锁?
析构函数异常?
statics的并行初始化?
关于c++ - 什么会导致应用程序在工作几个小时后因 SIGABRT 获取锁而失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21063071/