
Hi there, before holidays kick in I wondered whether I go for a strange problem in my usage of interprocess. Im using it within boost 1.38 on windows, msvc. Basically, I transfer data between two processes, which works great. So far, both have been built 32 bit release. But now since I exclusively use supposedly safe data types in the shared mem such as boost::uint32_t and friends I was wondering whether it's possible to have the data retrieving process built in 64 bit and access the same buffer. I just gave it a shot and it behaves different to what I had hoped for. In blocks during finding a struct with in a shared segment. ret = segment->find<struct my_buffer>(unique_instance).first; This operation blocks on a mutex in segment_manager.hpp: #ifdef BOOST_INTERPROCESS_RVALUE_REFERENCE scoped_lock<rmutex> #else detail::move_return<scoped_lock<rmutex> > #endif priv_get_lock(bool use_lock) { scoped_lock<rmutex> local(m_header, defer_lock); if(use_lock){ local.lock(); // <----- here! } return local; } .. never to return. The code is the same as in my 32 - 32 bit versions and known to work. Now I'm wondering, is this supposed to work or is 32 to 64 bit transfer not supported at all? Is this a bug or a feature? Do I have to have both applications in a 64 bit version? Cheers, Stephan