Interprocess: rbtree_best_fit ABI change from 1.53 to 1.55 ?
Hello, I have been using a boost::interprocess::map stored in a managed mapped file segment, using the rb_best_fit allocation algorithm. I have observed that starting in boost 1.55, I cannot interoperate with instances of this allocator that were created by programs compiled by boost 1.53. It appears that the size of a boost::intrusive multiset object has changed, and this changes the representation of the rb_best_fit algorithm within the shared memory region. The toolchain is unchanged between the two programs, in both cases it is Visual Studio 2012 on x64, linked against the release runtime library. The only change is that one was compiled using boost 1.53, while the other was compiled with boost 1.55. Is this the expected behavior? Is there a way to utilize boost interprocess in this way with reasonable certainty that the shared memory representation of it will not change between boost releases?
El 22/01/2014 16:14, Arunski, Kevin escribió:
Hello, I have been using a boost::interprocess::map stored in a managed mapped file segment, using the rb_best_fit allocation algorithm.
I have observed that starting in boost 1.55, I cannot interoperate with instances of this allocator that were created by programs compiled by boost 1.53.
It appears that the size of a boost::intrusive multiset object has changed, and this changes the representation of the rb_best_fit algorithm within the shared memory region.
Sorry about that. That must be a bug. Can you tell me please the sizes you get in both versions? Best, Ion
participants (2)
-
Arunski, Kevin
-
Ion Gaztañaga