2011-08-16 18 views
7

मेरे पास उसके लिए मैं बढ़ावा :: उपयोग कर रहा हूँ इंटरप्रोसेस जो स्मृति मैपिंग, allocators और अनाम स्मृति प्रदान करता है, STL कंटेनरों पर वस्तुओं के आवंटन के लिए एक mmap की तरह सेगमेंट का उपयोग करने की कोशिश कर रहा हूँ पर इंटरप्रोसेस स्मृति allocator मैपिंग समर्थन।
तरह thisबढ़ावा :: गुमनाम खंड

मेरे समस्या थोड़ा कि anonymous_shared_memory समारोह here रिटर्न कुछ है कि आधा मैप की फ़ाइल और आधा साझा स्मृति लग रहा है (mmap :) के साथ समझ में आता है) और यह एक अपने लापता की तरह दिखता है, हालांकि दोनों शैलियों interprocess allocators के साथ काम है एक सेगमेंट_मैनेजर जो वास्तविक खंड आवंटन करता है।
यह एक उच्च स्तरीय mapped_region पहले से ही इस प्रक्रिया में है, लेकिन कोई प्रबंधक और कोई रास्ता नहीं है कि मैं एक segment_manager में हुक करने देख सकते हैं के साथ मैप की रिटर्न के रूप में।

+0

anonymous_shared_memory' प्रोटोकॉल इंटरप्रोसेस allocators उम्मीद के अनुरूप नहीं है, तो ', यह एक बग की तरह लगता है। मैं आपको इसकी रिपोर्ट करने का प्रयास करने की सलाह देता हूं। –

उत्तर

3

एक mapped_region मध्य स्तर ऑब्जेक्ट में एक कम है, और सचमुच यादगार हैं। Managed shared memory, तथापि

, एक उन्नत वर्ग है कि एक साझा स्मृति वस्तु और एक मैप किए गए क्षेत्र है कि सभी साझा स्मृति वस्तु को शामिल किया गया जोड़ती है

तो यह कामयाब स्मृति कि segment_manager के अधिकारी है।

यह देखते हुए कि आप anonymous_shared_memory उपयोग करने के लिए, सबसे पहले आपको उदाहरण के अनुसार memory_region प्राप्त करना चाहते हैं, तो आप इसके पर एक segment_manager डाल करने के लिए नियुक्ति new का प्रयोग करेंगे चाहते हैं। इसका constructor मेमोरी सेगमेंट का आकार लेता है जिसमें इसका निर्माण किया जा रहा है। मुझे नहीं पता कि इसमें प्रबंधक का आकार शामिल है, हालांकि मुझे संदेह है कि इसमें शामिल है।

+0

@ अरकाट्ज़, क्या आपने यह कोशिश की है? क्या आप मुझे इसके लिए कुछ कोड एक साथ रखना चाहते हैं? – rcollyer

+0

कृपया करें; यह मददगार होगा! –

+0

@ EiyrioüvonKauyf यह एक _very_ लंबे समय से मैं इस पर ध्यान दिया गया है, इसलिए यदि मैं इसके लिए कोड इस सप्ताह के अंत पोस्ट न करें, मुझे फिर से प्रहार। – rcollyer

संबंधित मुद्दे