什么可能导致应用程序在几个小时的工作后使用SIGABRT锁定获取失败?

时间:2014-01-11 13:52:38

标签: c++ multithreading boost c++11 zeromq

我想知道在工作时间之后,什么是可能导致SIGABRT锁定获取时应用程序失败的一般问题?

它主要发生在std::lock_guard<std::mutex> lock(sync);

上的一个特定类析构函数代码中

有时会发生在boost::mutex::scoped_lock lock(mutex);区内的try catch(std::exception& e)

应用程序没有可检测到的内存泄漏。使用Boost,ZeroMQ,HiRedis。代码库很大,所以我想知道我们要讨厌的主要内容是什么?什么会导致这些问题(至少在理论上)?

1 个答案:

答案 0 :(得分:2)

在损坏的互斥锁上锁定/解锁? (即使用已删除的对象)可能大部分时间

在同一个线程内双锁?

析构函数中的异常?

静态并行初始化?