Subject: [Boost-bugs] [Boost C++ Libraries] #5230: Interprocess shared memory between 32 and 64 bit processes
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-02-25 13:42:37
#5230: Interprocess shared memory between 32 and 64 bit processes
-------------------------------------+--------------------------------------
Reporter: tgermer@⦠| Owner: igaztanaga
Type: Feature Requests | Status: new
Milestone: To Be Determined | Component: interprocess
Version: Boost Development Trunk | Severity: Problem
Keywords: shared memory 32 64 bit |
-------------------------------------+--------------------------------------
For sharing memory between 32 and 64 bit processes, all structures in
shared memory must have the same binary layout with matching size_type and
difference_type. In addition, offset_ptr must be 64bit in this case.
This is a patch that parameterizes offset_ptr to explicitly accept its
difference_type along with its internal offset_type. This difference_type
(and the according size_type) is propagated to all other affected
structures (memory algorithms, allocators, containers, ...). In 32/64 bit
shared environments, difference_type should be set to {{{int}}} and
offset_type to {{{unsigned __int64}}}. The default values are
{{{ptrdiff_t}}} and {{{size_t}}}.
Note: rbtree_best_fit also uses offset_type to store its internal block
sizes, because these need to wrap-around correctly on 64bit machines.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/5230> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:05 UTC