|
Boost Users : |
Subject: Re: [Boost-users] Problem creating a circular buffer in shared memory using Boost
From: Jan Gaspar (jano_gaspar_at_[hidden])
Date: 2010-02-25 03:54:58
Hi Cuneyt,
the circular buffer should be compatible with Interprocess - the only 'problem' is that the circular buffer's debug support relies on 'raw' pointers. Try compiling with -DBOOST_CB_DISABLE_DEBUG or -DNDEBUG. I believe this will help.
Regards,
Jan
________________________________
From: CuneytTaskiran <ctaskiran_at_[hidden]>
To: boost-users_at_[hidden]
Sent: Thu, 25 February, 2010 5:50:27
Subject: [Boost-users] Problem creating a circular buffer in shared memory using Boost
Hi,
I am trying to create a circular buffer in shared memory using Boost circular_buffer and Interprocess libraries. I compiled and ran the the example given in the Interprocess documentation for creating a vector in shared memory with no problem. However, when I modify it to use the Boost circular_buffer as:
int main(int argc, char *argv[])
{
managed_shared_memory segment(create_only, "MySharedMemory", 65536);
constShmemAllocatoralloc_inst (segment.get_segment_manager());
MyCircBuffer *myCircBuf = segment.construct<MyCircBuffer>("MyCircBuffer")(alloc_inst);
return 0;
}
I get a compilation error (caused by segment.construct()). Any idea what I am doing wrong? Is it because circular_buffer is not one of the containers listed in /boost/interprocess/containers, i.e. it's not compatible with Interprocess?
Thanks,
C
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