lock_guard вызывает зависание строки кода - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть следующий код, где я использую 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);и не перейти к следующей строке.Почему?

1 Ответ

0 голосов
/ 23 апреля 2019

Я бы использовал этот другой метод, он проще и не требует повышения:

std::mutex mymutex;
std::unique_lock< std::mutex > myLock(mymutex);
// Do your lock-needed things here...
myLock.unlock();
myLock.release();
...