Re: [Boost-bugs] [Boost C++ Libraries] #4522: allocation problem after grow

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #4522: allocation problem after grow
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-08-08 08:02:14


#4522: allocation problem after grow
-------------------------------+--------------------------------------------
  Reporter: razzik@… | Owner: igaztanaga
      Type: Bugs | Status: closed
 Milestone: Boost 1.44.0 | Component: interprocess
   Version: Boost 1.43.0 | Severity: Showstopper
Resolution: invalid | Keywords: interprocess shared_memory ipc grow allocation
-------------------------------+--------------------------------------------
Changes (by igaztanaga):

  * status: new => closed
  * resolution: => invalid

Comment:

 From the help:

 "Boost.Interprocess offers off-line segment growing. What does this mean?
 That the segment can be grown if no process has mapped the managed
 segment. If the application can find a moment where no process is attached
 it can grow or shrink to fit the managed segment."

 So you must unmap, grow and remap it again:

 {{{#!c++
 /* Create SM - Size 100K*/<br>
 {
 managed_shared_memory shm(create_only, "MySM", 100*1024);
 }
 //Unmapped here

 /* Grow SM By 28K*/
 managed_shared_memory::grow("MySM",28*1024);

 //Remap it
 managed_shared_memory shm(open_only, "MySM");

 /* SM full size - 128K*/
 int fullSMSize = shm.get_size();
 /* SM mem size - 128K - sizeof(SM Header)*/
 int memSMSize = shm.get_free_memory();
 /* alloc 64K in SM (64K<128K)*/
 void* ptr = shm.allocate(64*1024);
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/4522#comment:1>
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:04 UTC