我想知道在工作时间后,哪些常见问题可能导致SIGABRT在锁定获取时应用程序失败?
它主要发生在std::lock_guard<std::mutex> lock(sync);
上的一个特定的类析构函数代码中
有时它发生在块内的boost::mutex::scoped_lock lock(mutex);
try catch(std::exception& e)
。
应用程序没有可检测到的内存泄漏。使用 Boost、ZeroMQ、HiRedis。代码库很大,所以我想知道我们要抢夺的主要内容是什么?什么会导致这样的问题(至少在理论上)?
锁定/解锁损坏的互斥锁?(即处理已删除的对象)可能大多数时候
同一线程内的双重锁定?
析构函数中的异常?
静态的并行初始化?