lock_guard导致代码行被挂起

问题描述 投票:0回答:1

我有以下代码,其中我使用lock_guard作为命名互斥锁,以便在代码执行完成时释放互斥锁(包括抛出的异常)

#include <boost/interprocess/sync/named_mutex.hpp>
using namespace boost::interprocess;

int main()
{
    named_mutex mutex(open_or_create, "some_name");

    boost::lock_guard<named_mutex> guard(mutex);
    // Do other things
}

但代码挂在boost :: lock_guard guard(mutex)上;并没有进入下一行。为什么?

c++ visual-studio boost mutex boost-mutex
1个回答
-1
投票

我会使用另一种方法,它更简单,不需要提升:

std::mutex mymutex;
std::unique_lock< std::mutex > myLock(mymutex);
// Do your lock-needed things here...
myLock.unlock();
myLock.release();
© www.soinside.com 2019 - 2024. All rights reserved.