繁体   English   中英

dtor中的unique_lock有什么用吗?

[英]Does this unique_lock in dtor serve any purpose?

在我正在调试的代码库中跨此析构函数运行。

ManagerImpl::~ManagerImpl() {
    // don't go away if some thread is still hitting us
    boost::unique_lock<boost::mutex> l(m_mutex);
}

它实际上在多线程程序中有任何有用的用途吗? 看起来好像很烂。

我认为,如果另一个线程正在调用一个锁定互斥量的函数,则可以推迟销毁操作,但是这样做是否有效? ElectricFence分段故障会让我不相信。

它可能正在尝试推迟销毁操作,直到另一个线程解锁互斥锁并离开另一个成员函数为止。

但是,这不会阻止释放析构函数中的锁之后另一个线程再次调用该函数。

为了使此代码有意义,线程之间必须有更多的交互(您未显示)。 仍然认为,这似乎不是健壮的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM