Boost logo

Boost Users :

Subject: [Boost-users] boost::interprocess, allocators and containers of containers
From: Matthew Stump (mstump_at_[hidden])
Date: 2010-07-12 23:28:04


I'm attempting to create a buffered queue backed by a memory mapped file. The main data structure is a boost::interprocess::list of boost::interprocess::shared_ptr< Buffer<T> >.

Buffer<T> is a struct that has two members: an interprocess_upgradable_mutex and a interprocess::deque. When I attempt to push an item into the deque contained by the struct I get a SIGSEGV in rbtree_best_fit::priv_mark_as_free_block() at line 1153 when using boost 1.43.

I'm passing the allocator to the constructor of the deque as instructed in the documentation and I'm using all types which should be boost::interprocess safe. I've spent a couple hours on this one item and I'm not making any progress; I was wondering if someone could please lend me a hand.

Source excerpt and backtrace:
https://gist.github.com/ff7912d4582d68b825c3

Thanks,
Matt Stump

P.S. Other helpful criticism of my usage or advice on boost::interprocess would be greatly appreciated.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net