boost-interprocess

    2熱度

    1回答

    我想我最終掌握了boost:interprocess庫的基礎知識,並且在處理包含幾個成員變量的相對簡單的類時,我一直在成功地使用它都是標準數據類型。 但是,我現在面臨着將一個相當複雜的類推入進程間共享內存的問題,而且我根本沒有運氣。我希望這裏有人能夠幫助(或者可以引導我走向另一種解決方案)。剝離下來到什麼,我希望是基礎知識,我有東西沿着這些路線: // these first two classe

    7熱度

    2回答

    我有一個多線程的服務器應用程序,它需要對某些共享內存進行互斥鎖。 共享內存基本上都是STL地圖等 很多時候我只是從地圖上讀出。 但是,我也需要偶爾加入它。 例如 typedef std :: map MessageMap; MessageMap msgmap; boost:shared_mutex access_; void ProcessMessage(Message* message) {

    12熱度

    2回答

    我正在研究一個由內存映射文件支持的線程安全隊列,這些文件相當大地利用了boost進程。我提交它用於代碼審查,並且比我在這個星球上擁有更多年經驗的開發人員表示他並不認爲boost :: interprocess已經「準備好了黃金時間」,並且我應該直接使用pthread。 我認爲這主要是FUD。我個人認爲去重新實現諸如upgradable_named_mutex或boost :: interproce

    4熱度

    2回答

    我有一個約10Gb的Boost.MultiIndex大數組。爲了減少閱讀,我認爲應該有辦法將數據保存在內存中,另一個客戶端程序將能夠讀取和分析它。 什麼是組織它的正確方法? 數組是這樣的: struct particleID { int ID;// real ID for particle from Gadget2 file "ID" block unsigned

    7熱度

    2回答

    這是一個令人尷尬的問題,但即使是boost.interprocess提供的精心編寫的文檔也不足以讓我弄清楚去做這個。 我已經是一個cached_adaptive_pool分配情況,我想用它來構造一個對象,沿構造函數的參數傳遞: struct Test { Test(float argument, bool flag); Test(); }; // Normal const

    2熱度

    2回答

    以下是官方的BOOST文檔。 爲什麼在撥打region.get_size()時總是得到零大小?我究竟做錯了什麼? int main(int argc, char *argv[]) { //Create a native windows shared memory object. windows_shared_memory shm (create_only, "MyShare

    1熱度

    2回答

    這讓我非常沮喪。我只是試圖創建一個共享內存緩衝區類,該類使用通過Boost.Interprocess創建的共享內存來讀取/存儲數據。我寫了下面的測試功能 #include <boost/interprocess/shared_memory_object.hpp> #include <boost/interprocess/mapped_region.hpp> #include <iostream

    0熱度

    1回答

    我使用boost :: interprocess :: message_queue,與VC + +(在Microsoft Visual Studio 2005中)。 它在調試模式下正常工作。 然後,當我在發佈模式下編譯我的程序時,它停止工作,每次我調用「try_send」它都會返回false。 我不明白什麼可能是發佈和調試模式之間不同的設置,這將使隊列停止工作。

    1熱度

    1回答

    我拉我的頭髮由於下面的問題:我下面Boost.Interprocess中文檔中給出the example實例,我在共享內存中寫了一個固定大小的環形緩衝區緩存類。我的課的骨架構造是: template<typename ItemType, class Allocator > SharedMemoryBuffer<ItemType, Allocator>::SharedMemoryBuffer(un

    2熱度

    1回答

    我已經盯着Boost.Interprocess文檔數小時,但仍然無法弄清楚。在doc,他們有an example像這樣在共享內存中創建一個載體: //Define an STL compatible allocator of ints that allocates from the managed_shared_memory. //This allocator will allow placin