Lockfree impl comment - does not seem to be compatible with Boost::Interprocess (shared memory) [SEC=UNCLASSIFIED]

UNCLASSIFIED Hi, Since Lockfree library (by Tim Blechmann) is in the review stage I have a comment to make. I only looked at the code just at a glance to check if it would be able to be used with Boost::Interprocess library, especially to be placed in the shared memory and to me it definitely doesn't seem to deduce the pointer types from the Allocation supplied as a template argument. For any container implementation to be useable with Interprocess shared memory the requirement is that any internal pointer types are not explicitly stated - instead they aggregate the pointer types from the Allocator's internal pointer typedefs. By this the container will use "smart" or plain pointers, whichever the Allocators specify/define. Good place to look at for how this should be done is <boost/interprocess/containers/map.hpp> and other containers' implementation in that location. Also the Interprocess documentation explains why, for instance, the std::map or std::vector containers are incorrectly (not generically enough) implemented and suggests a possibility of potential future corrections in STL implementations (that part is only speculative, of course). While in its current form it is already very useful in intra-process applications, I would consider the incompatiblity with Interprocess' shared memory a hugely missed opportunity. My recommendation would be to first to address this issue before accepting it for inclusion. Thank you all so much for the Boost - the best thing that happened to C++. Kindest regards Gabe Gabe Levy Senior Software Engineer, Contractor, Estrings Pty Ltd IMPORTANT: This email remains the property of the Department of Defence and is subject to the jurisdiction of section 70 of the Crimes Act 1914. If you have received this email in error, you are requested to contact the sender and delete the email.

hi,
I only looked at the code just at a glance to check if it would be able to be used with Boost::Interprocess library, especially to be placed in the shared memory and to me it definitely doesn't seem to deduce the pointer types from the Allocation supplied as a template argument.
it probably makes sense to support boost.interprocess. i'll have a look ... tim
participants (2)
-
Levy, Gabriel (Contractor)
-
Tim Blechmann