
Hi, Thanks Lon for the nice reply. I hope I will get a new method very soon. I have one more query about the shared memory. I create shared memory using boost::interprocess, at linking time I add -lrt -lxml2 -lccext2 -lccgnu2 -ldl (common C++ link library) along with -Wall -pedantic -g -pthread -DBOOST_DATE_TIME_NO_LIB -DBOOST_INTERPROCESS_POSIX_PROCESS_SHARED -lstdc++ -lboost_thread (boost::interprocess link library). The common C++ library is added for the other requirement of the application. I open the shared memory form the another process, where "comman C++ link library" is not added. Segmentation fault is the result. Then I created two shared memory. First with "common C++ link library" and "boost::interprocess link library" And Second with only "boost::interprocess link library", These two shared memories are different, I found offset of some bytes on the actual values stored in the shared memory. I am not finding the way, why this problem is. I want to know how any other link libray may change the data of the shared memory. Please help. On 3/8/07, Ion GaztaƱaga <igaztanaga@gmail.com> wrote:
Shibu Bera wrote:
Hi,
After creating the shared memory I put three containers (boost::multi_index, std::map and std::vector) into the shared memory, then objects into the containers. But in later part of the execution, there are condition when I need to remove these elements and containers. I also don't want to eat up the primary memory by creating the saparate shared memory nor I want to remove the earlier shared memory. If I just destroy the containers the previous garbage data may create problem. So I want such method or way to memset the shared memory with NULL characters. This information should suffice the query, Can I get some clue now?
Which type of problems, security problems? Or do you base your program on the value the memory you allocate has before using it? If your destroy the containers and after that you create new ones, I think you shouldn't have problems. If for any reason, (security or whatever) you need to guarantee that all free memory (memory that does not contain any object in the segment) is zeroed before being reused, I would need to add new functionality to the library, because this is not currently possible: the memory allocation algorithm should have a function that traverses all the free memory segments and memsets them.
These days I will be busy with the Intrusive review, so you would need to wait until the end of the month to get this functionality.
Regards,
Ion _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Regards, CBu..., Tata Power, Mumbai.......