我有以下代码,其中我使用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);上。并且不会继续进行下一行。为什么?
答案 0 :(得分:-1)
我会使用另一种方法,它更简单,并且不需要增强:
std::mutex mymutex;
std::unique_lock< std::mutex > myLock(mymutex);
// Do your lock-needed things here...
myLock.unlock();
myLock.release();