scoped-lock

    6热度

    3回答

    我的缩短,简化类看起来如下: class A { public: // ... methodA(); methodB(); protected: mutable boost::mutex m_mutex; sometype* m_myVar; } A::methodA(int someParam) { bo

    1热度

    1回答

    在boost::recursive_mutex::scoped_lock上调用unlock()之后,锁对象是否会在其析构函数中以某种方式引用互斥锁? 锁在调用解锁后仍然保留对互斥体的引用(即,mutex()返回相同的指针)。在锁超出范围之前互斥锁被销毁的情况下,还必须在锁上调用release()?在为unique_lock的析构函数的代码

    0热度

    1回答

    以下编译下VS2010(Express),但不是gcc(4.6.2在这里)。 Lockable.h: #include <boost/thread/mutex.hpp> #include <boost/interprocess/sync/scoped_lock.hpp> template<typename T> class LockedProxy : boost::noncopyable

    1热度

    1回答

    我刚开始提升。我想问我的代码是否使用互斥锁。 为了测试它,我编写了计算1到n的数字之和的代码。傻的方法来计算,但我用n个线程...只是尝试互斥... #include <boost/thread/mutex.hpp> #include <boost/thread/thread.hpp> #include <iostream> #define NUMBER 10 boost::mutex

    3热度

    1回答

    我正在使用boost :: interprocess :: scoped_lock,如果应用程序崩溃的原因在范围内的互斥体未被释放。 下次执行应用程序(无需重新启动计算机),互斥锁被锁定。 这是打算如何工作? 我给出了一个简单的例子,下面的代码。 { boost::interprocess::named_mutex lockMutex(boost::interprocess::open_

    3热度

    1回答

    我是新来的助推线程库。我有一种情况,我在一个函数中获取scoped_lock,并需要在被调用者中等待它。 的代码上的行: class HavingMutex { public: ... private: static boost::mutex m; static boost::condition_variable *c; static

    1热度

    1回答

    我觉得我的程序有问题。 我必须创建一个连续与外部跟踪系统进行通信并从中获取点坐标的对象。 我包该类一个boost ::线程内,首先调用到我的转运蛋白的应用之前,我创建线程对象,我取下它 为类的显着方法的代码如下 boost::mutex resourceMutex; void Tracker::init() { boost::mutex::scoped_lock lock(reso

    1热度

    1回答

    我使用scoped_lock和mutex实现版本BlockingQueue posted in a different SO question的,但也有提升对他们俩的多个不同的预编译的头。 scoped_lock可通过 “升压/处理器间/同步/ scoped_lock.hpp” 和 “升压/线程/ mutex.hpp” mutex可通过 “升压/线程/ mutex.hpp”,“升压/信号2/mut

    2热度

    3回答

    我正在寻找缩短代码的想法。我正在使用boost::scoped_lock来锁定boost::mutex,但我想缩短正在写入的代码量。 目前我在我的课堂上定义了一个mutex,成员字段名为_sync。当我想锁,我必须写: scoped_lock<mutex> lock(_sync); 棘手的部分是,这是一个范围的锁,所以我想,如果我写了一个静态函数返回的scoped_lock,那么它会尽快解开因

    1热度

    1回答

    我有一个构造函数,可以允许用户将一个ponter传递给一个Boost互斥锁。如果未提供互斥锁,则会员指针pMyMutex设置为NULL。这使得用户可以根据需要选择一些线程安全性。但是,我不能使用这种检查的scoped_lock出于显而易见的原因:) if (pMyMutex != NULL) const boost::mutex::scoped_lock l(*pMyMutex);