gpt4 book ai didi

c++ - dtor 中的这个 unique_lock 有什么用吗?

转载 作者:搜寻专家 更新时间:2023-10-31 00:50:54 24 4
gpt4 key购买 nike

在我正在调试的代码库中遇到了这个析构函数。

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

它在多线程程序中真的有用吗?看起来像拼凑的。

我假设这个想法是在另一个线程正在调用锁定互斥体的函数时推迟销毁,但这样做是否有效? ElectricFence 段错误会让我相信并非如此。

最佳答案

它可能试图推迟销毁,直到另一个线程解锁互斥量并离开另一个成员函数。

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

线程之间必须有更多交互(您没有显示)才能使这段代码有意义。不过,我想,这似乎不是健壮的代码。

关于c++ - dtor 中的这个 unique_lock 有什么用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56635632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com