[interprocess] Mixed 32bit/64bit processes shared memory current status

I wrote about:
http://lists.boost.org/Archives/boost/2011/02/177696.php https://svn.boost.org/trac/boost/ticket/5230
What was obvious to the contributors to the above discussion, but dawned on me only slowly, was that mixed bitness shared memory only stands a chance of working if ones uses offset_ptr< void , boost::int64_t , boost::uint64_t > rather than the default offset_ptr< void > (which is possible on current trunk). I've now begun testing this in my own app and it is looking promising so far. Hope this helps someone googling for the same thing. Pete

El 05/10/2011 22:51, Pete Bartlett escribió:
I wrote about:
http://lists.boost.org/Archives/boost/2011/02/177696.php https://svn.boost.org/trac/boost/ticket/5230
What was obvious to the contributors to the above discussion, but dawned on me only slowly, was that mixed bitness shared memory only stands a chance of working if ones uses
offset_ptr< void , boost::int64_t , boost::uint64_t>
rather than the default
offset_ptr< void>
(which is possible on current trunk).
I've now begun testing this in my own app and it is looking promising so far.
It could work on windows because mutexes and condition vars are spinlock-based emulations and in 32 and 64 bit windows 32 bit integers are used. However in linux pthread mutexes are not shareable between 32 and 64 bit applications, so this would never work. However I think it could work on Solaris as the same pthread_mutex_cond seems usable between 32 and 64 bit applications. Ion
participants (2)
-
Ion Gaztañaga
-
Pete Bartlett