Boost C++ Libraries: Ticket #6610: customizing boost::pool/boost::object_pool via template parameter for ordered/non-ordered usage https://svn.boost.org/trac10/ticket/6610 <p> 1. A documentation conflict between declaration and definition of boost::pool::purge_memory(). The definition documentation is </p> <pre class="wiki">//! pool must be ordered </pre><p> , but the declaration documentation does not provide this information. </p> <p> 2. Version of non-ordered boost::pool::release_memory() </p> <p> Thereby there is the question - are there any differences in implementation or perfomance of ordered/non-ordered versions of this function? </p> <p> 3. Providing ordered/non-ordered release_memory() and purge_memory() for boost::object_pool </p> <p> 4. Efficient(non-ordered) construct/destroy of single objects in boost::object_pool(i.e. when boost::object_pool will be used for allocating single objects only, not arrays of objects) </p> <p> 5. Introduce some template parameter in the boost::object_pool(and in the boost::pool) in order to customize the pool for ordered/non-ordered or both usage. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/6610 Trac 1.4.3 edupuis Thu, 03 May 2012 16:50:24 GMT owner, status changed https://svn.boost.org/trac10/ticket/6610#comment:1 https://svn.boost.org/trac10/ticket/6610#comment:1 <ul> <li><strong>owner</strong> changed from <span class="trac-author">Chris Newbold</span> to <span class="trac-author">edupuis</span> </li> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">assigned</span> </li> </ul> Ticket edupuis Sun, 06 May 2012 13:48:20 GMT <link>https://svn.boost.org/trac10/ticket/6610#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/6610#comment:2</guid> <description> <ol><li>Method boost::pool::purge_memory() does not require the pool to be ordered. Documentation has to be amended. </li></ol><ol start="2"><li>Current implementation of boost::pool::release_memory() fails if the pool is not ordered. It could be implemented by adding a pool.order() function which could be called by the user to make an unordered pool ordered. The pool.order() function could also be called automatically if the pool maintains a boolean describing whether it is ordered or not. </li></ol><ol start="3"><li>We could provide a gateway to release_memory() and to purge_memory(), the latter calling destructors of objects allocated, exactly what is already implemented in the destructor of object_pool. </li></ol><ol start="4"><li>This is related to ticket <a class="new ticket" href="https://svn.boost.org/trac10/ticket/3789" title="#3789: Bugs: boost::object_pool::free() is very slow. (new)">#3789</a>. In the current implementation, boost::object_pool can not be used to allocate arrays of objects. </li></ol><ol start="5"><li>If ticket <a class="new ticket" href="https://svn.boost.org/trac10/ticket/3789" title="#3789: Bugs: boost::object_pool::free() is very slow. (new)">#3789</a> is resolved, this is probably not as needed. However, it could let a user choose between a slow 'object_pool::free()' or a slow 'object_pool::~object_pool()' as described in ticket <a class="new ticket" href="https://svn.boost.org/trac10/ticket/3789" title="#3789: Bugs: boost::object_pool::free() is very slow. (new)">#3789</a>, although I fail to see relevant usages where one would choose a slow free. The suggested template parameter seems useless for boost::pool as the caller chooses between the ordered or unordered malloc/free functions. </li></ol><p> Any comments ? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Mon, 07 May 2012 11:35:35 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/6610#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/6610#comment:3</guid> <description> <p> So, I agree with you. The behaviour as described in your comment in ticket <a class="ext-link" href="https://svn.boost.org/trac/boost/ticket/3789"><span class="icon">​</span>#3789</a> is what I expected. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>edupuis</dc:creator> <pubDate>Sun, 13 May 2012 16:41:29 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/6610#comment:4 https://svn.boost.org/trac10/ticket/6610#comment:4 <ul> <li><strong>status</strong> <span class="trac-field-old">assigned</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/78454" title="Added methods release_memory() and purge_memory() to object_pool. This ...">[78454]</a>) Added methods release_memory() and purge_memory() to object_pool. This complete and fixes <a class="new ticket" href="https://svn.boost.org/trac10/ticket/6610" title="#6610: Feature Requests: customizing boost::pool/boost::object_pool via template parameter for ... (new)">#6610</a>, as the remaining part of this ticket was addressed by <a class="new ticket" href="https://svn.boost.org/trac10/ticket/3789" title="#3789: Bugs: boost::object_pool::free() is very slow. (new)">#3789</a>. </p> Ticket edupuis Mon, 21 May 2012 05:59:56 GMT status changed; resolution deleted https://svn.boost.org/trac10/ticket/6610#comment:5 https://svn.boost.org/trac10/ticket/6610#comment:5 <ul> <li><strong>status</strong> <span class="trac-field-old">closed</span> → <span class="trac-field-new">reopened</span> </li> <li><strong>resolution</strong> <span class="trac-field-deleted">fixed</span> </li> </ul> Ticket edupuis Mon, 16 Jul 2012 20:01:58 GMT owner, status changed https://svn.boost.org/trac10/ticket/6610#comment:6 https://svn.boost.org/trac10/ticket/6610#comment:6 <ul> <li><strong>owner</strong> changed from <span class="trac-author">edupuis</span> to <span class="trac-author">John Maddock</span> </li> <li><strong>status</strong> <span class="trac-field-old">reopened</span> → <span class="trac-field-new">new</span> </li> </ul> <p> <a class="ext-link" href="https://svn.boost.org/svn/boost/sandbox/pool"><span class="icon">​</span>https://svn.boost.org/svn/boost/sandbox/pool</a> at revision 79460 contains a solution for tickets <a class="new ticket" href="https://svn.boost.org/trac10/ticket/3789" title="#3789: Bugs: boost::object_pool::free() is very slow. (new)">#3789</a>, <a class="new ticket" href="https://svn.boost.org/trac10/ticket/5902" title="#5902: Bugs: Division by zero when requesting null sized buffers (new)">#5902</a>, <a class="new ticket" href="https://svn.boost.org/trac10/ticket/6561" title="#6561: Bugs: pool.free() crashes if given a null pointer (new)">#6561</a>, <a class="new ticket" href="https://svn.boost.org/trac10/ticket/6610" title="#6610: Feature Requests: customizing boost::pool/boost::object_pool via template parameter for ... (new)">#6610</a>, <a class="new ticket" href="https://svn.boost.org/trac10/ticket/6701" title="#6701: Bugs: integer overflows in ordered_malloc() (new)">#6701</a>, <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/6718" title="#6718: Bugs: Missing images (closed: fixed)">#6718</a>, <a class="new ticket" href="https://svn.boost.org/trac10/ticket/6865" title="#6865: Feature Requests: pool.get_size() (new)">#6865</a> and <a class="new ticket" href="https://svn.boost.org/trac10/ticket/6867" title="#6867: Bugs: Unclear behavior of parameter 'max_size' (new)">#6867</a>. Related test cases are also present. </p> <p> <a class="ext-link" href="https://svn.boost.org/svn/boost/sandbox/pool"><span class="icon">​</span>https://svn.boost.org/svn/boost/sandbox/pool</a> at revision 79460 does <strong>not</strong> contain any other new features or modifications other than those related to the above tickets. </p> <p> Boost.Pool currently has no maintainer and is thus orphaned. </p> Ticket