Making interprocess::message_queue use Windows_shared_memory instead of shared_memory_object

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Making interprocess::message_queue use Windows_shared_memory instead of shared_memory_object

Boost - Users mailing list
Hi,

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. 

_______________________________________________
Boost-users mailing list
[hidden email]
https://lists.boost.org/mailman/listinfo.cgi/boost-users