I am trying to make boost::interprocess::message_queue to use windows_shared_memory, instead of shared_memory_object. I have made the below changes to boost version 1.65.1
1) In ipc\message_queue.hpp, included windows_shared_memory.hpp instead of shared_memory_object.hpp
2) Changed
typedef ipcdetail::managed_open_or_create_impl<shared_memory_object, 0, true, false> open_create_impl_t;
to
typedef ipcdetail::managed_open_or_create_impl<windows_shared_memory, 0, false, false> open_create_impl_t;
3) Changed the below in mq_hdr_t::
typedef ipcdetail::managed_open_or_create_impl<shared_memory_object, 0, true, false> open_create_impl_t;
to
typedef ipcdetail::managed_open_or_create_impl<windows_shared_memory, 0, false, false> open_create_impl_t;
4) Changed
inline bool message_queue_t<VoidPointer>::remove(const char *name)
{ return shared_memory_object::remove(name); }
to
inline bool message_queue_t<VoidPointer>::remove(const char *name)
{ return true; }
5)Changed the below in detail\managed_open_or_create_impl.hpp
template<bool dummy>
static void truncate_device(DeviceAbstraction &dev, offset_t size, true_)
{ dev.truncate(size); }
to
template<bool dummy>
static void truncate_device(DeviceAbstraction &dev, offset_t size, true_)
{ }
After the above changes, no file is getting created and everything seems to work. Is there something else i should care about?
Regards,
Gaurav.