23 Sep
2009
23 Sep
'09
3:15 p.m.
Just an update
On Wed, Sep 23, 2009 at 3:43 PM, Stephan Menzel
ptr = m_segment->allocate_aligned(static_cast
(rawsize), 128); Now after a while the segment will have no more room for further blocks. So I delete some of them to gain more room:
m_segment->deallocate(raw.get()); ...
This makes me believe that either deallocate didn't do a good job...
Actually it just turned out this is the case. I tried among many other things replacing the allocate_aligned() with an ordinary allocate() and this works. So I'm afraid this looks a lot like a bug in interprocess to me. Pointers returned by allocate_aligned are aligned but cannot be deallocated. At least not in a way that would have the mem actually available afterwards. HTH, Stephan