howto.html: Finish allocator notes (inst and 3.0).
2001-11-29 Phil Edwards <pme@gcc.gnu.org> * docs/html/ext/howto.html: Finish allocator notes (inst and 3.0). From-SVN: r47452
This commit is contained in:
parent
b67db52985
commit
894c7af33d
2 changed files with 26 additions and 5 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
2001-11-29 Phil Edwards <pme@gcc.gnu.org>
|
||||||
|
|
||||||
|
* docs/html/ext/howto.html: Finish allocator notes (inst and 3.0).
|
||||||
|
|
||||||
2001-11-29 Benjamin Kosnik <bkoz@redhat.com>
|
2001-11-29 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
|
||||||
* include/bits/locale_facets.tcc (num_get::do_get(long double)):
|
* include/bits/locale_facets.tcc (num_get::do_get(long double)):
|
||||||
|
|
|
@ -276,6 +276,9 @@
|
||||||
<code>__alloc</code> should not be noticably slower than
|
<code>__alloc</code> should not be noticably slower than
|
||||||
<code>__single_client_alloc</code>.)
|
<code>__single_client_alloc</code>.)
|
||||||
</p>
|
</p>
|
||||||
|
<p>[Another threadsafe allocator where each thread keeps its own free
|
||||||
|
list, so that no locking is needed, might be described here.]
|
||||||
|
</p>
|
||||||
<h3>A cannon to swat a fly:<code> __USE_MALLOC</code></h3>
|
<h3>A cannon to swat a fly:<code> __USE_MALLOC</code></h3>
|
||||||
<p>If you've already read <a href="../23_containers/howto.html#3">this
|
<p>If you've already read <a href="../23_containers/howto.html#3">this
|
||||||
advice</a> and decided to define this macro, then the situation changes
|
advice</a> and decided to define this macro, then the situation changes
|
||||||
|
@ -320,16 +323,30 @@
|
||||||
<code>__default_alloc_template</code> classes take an integer parameter,
|
<code>__default_alloc_template</code> classes take an integer parameter,
|
||||||
called inst here. This number is completely unused.
|
called inst here. This number is completely unused.
|
||||||
</p>
|
</p>
|
||||||
<p> More soon.
|
<p>The point of the number is to allow multiple instantiations of the
|
||||||
|
classes without changing the semantics at all. All three of
|
||||||
|
<pre>
|
||||||
|
typedef __default_alloc_template<true,0> normal;
|
||||||
|
typedef __default_alloc_template<true,1> private;
|
||||||
|
typedef __default_alloc_template<true,42> also_private;</pre>
|
||||||
|
behave exactly the same way. However, the memory pool for each type
|
||||||
|
(and remember that different instantiations result in different types)
|
||||||
|
remains separate.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>The library uses <strong>0</strong> in all its instantiations. If you
|
||||||
|
wish to keep separate free lists for a particular purpose, use a
|
||||||
|
different number.
|
||||||
</p>
|
</p>
|
||||||
<h3>3.0.x</h3>
|
<h3>3.0.x</h3>
|
||||||
<p>I don't even remember. More soon.
|
<p>For 3.0.x, many of the names were incorrectly <em>not</em> prefixed
|
||||||
|
with underscores. So symbols such as "std::single_client_alloc"
|
||||||
|
are present. Be very careful to not depend on these names any more
|
||||||
|
than you would depend on implementation-only names.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>Certain macros like <code>_NOTHREADS</code> and <code>__STL_THREADS</code>
|
||||||
|
can affect the 3.0.x allocators. Do not use them.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>More notes as we remember them...
|
||||||
</p>
|
</p>
|
||||||
<p>Return <a href="#top">to top of page</a> or
|
<p>Return <a href="#top">to top of page</a> or
|
||||||
<a href="../faq/index.html">to the FAQ</a>.
|
<a href="../faq/index.html">to the FAQ</a>.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue