"John M. Dlugosz"
On 7/31/2011 1:39 AM, Anthony Foiani wrote:
typedef boost::interprocess::basic_string< ShmCharType, std::char_traits< ShmCharType>, ShmCharAllocatorType > ShmStringType;
A string allocator will affect the storage of the stored characters, but doesn't affect the structure that is the body of the basic_string instance itself.
I'm pretty sure that's why I'm using the basic_string template from interprocess in the first place, instead of std::basic_string. But I initially wrote that code a long time ago, and now it seems to be freaking out on me, so.
Perhaps the actual string instance is not being shared? The other process has its own version and doesn't see the change to length.
Hm. In this case, I'm seeing corruption even within a single process, so I don't *think* this is the problem. Either way, thanks for taking a look! I'm sure I'm just doing something extra stupid. Thanks again, Tony p.s. I created an updated version that doesn't rely on Linux's /dev/shm: http://foiani.com/cpp/boost/InterProcStringTest2.cpp