scoped-lock

    1熱度

    1回答

    我覺得我的程序有問題。 我必須創建一個連續與外部跟蹤系統進行通信並從中獲取點座標的對象。 我包該類一個boost ::線程內,首先調用到我的轉運蛋白的應用之前,我創建線程對象,我取下它 爲類的顯着方法的代碼如下 boost::mutex resourceMutex; void Tracker::init() { boost::mutex::scoped_lock lock(reso

    1熱度

    1回答

    我剛開始提升。我想問我的代碼是否使用互斥鎖。 爲了測試它,我編寫了計算1到n的數字之和的代碼。傻的方法來計算,但我用n個線程...只是嘗試互斥... #include <boost/thread/mutex.hpp> #include <boost/thread/thread.hpp> #include <iostream> #define NUMBER 10 boost::mutex

    6熱度

    3回答

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

    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,那麼它會盡快解開因

    3熱度

    1回答

    我正在使用boost :: interprocess :: scoped_lock,如果應用程序崩潰的原因在範圍內的互斥體未被釋放。 下次執行應用程序(無需重新啓動計算機),互斥鎖被鎖定。 這是打算如何工作? 我給出了一個簡單的例子,下面的代碼。 { boost::interprocess::named_mutex lockMutex(boost::interprocess::open_

    1熱度

    1回答

    我有一個構造函數,可以允許用戶將一個ponter傳遞給一個Boost互斥鎖。如果未提供互斥鎖,則會員指針pMyMutex設置爲NULL。這使得用戶可以根據需要選擇一些線程安全性。但是,我不能使用這種檢查的scoped_lock出於顯而易見的原因:) if (pMyMutex != NULL) const boost::mutex::scoped_lock l(*pMyMutex);

    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

    3熱度

    1回答

    我是新來的助推線程庫。我有一種情況,我在一個函數中獲取scoped_lock,並需要在被調用者中等待它。 的代碼上的行: class HavingMutex { public: ... private: static boost::mutex m; static boost::condition_variable *c; static