aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/docs
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2004-10-09 02:30:10 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2004-10-09 02:30:10 +0000
commitc3e7f18406f1869604b48b03f8a1e39123885362 (patch)
tree8e3e1d2f5f372fc6e36fa64ac8ac0238e33b9d75 /libstdc++-v3/docs
parenta5df984b5fa512505401a4563ccb266289087f79 (diff)
downloadgcc-c3e7f18406f1869604b48b03f8a1e39123885362.zip
gcc-c3e7f18406f1869604b48b03f8a1e39123885362.tar.gz
gcc-c3e7f18406f1869604b48b03f8a1e39123885362.tar.bz2
acconfig.h: Add _GLIBCXX_USE___CXA_ATEXIT.
2004-10-08 Benjamin Kosnik <bkoz@redhat.com> * acconfig.h: Add _GLIBCXX_USE___CXA_ATEXIT. * acinclude.m4 (GLIBCXX_ENABLE_CXA_ATEXIT): New. * configure.ac: Call GLIBCXX_ENABLE_CXA_EXIT. * configure: Regenerate. * src/mt_allocator.cc (__pool::~__pool): Make conditional on _GLIBCXX_USE___CXA_ATEXIT macro. * docs/html/ext/mt_allocator.html: Add note about deallocation. * testsuite/ext/mt_allocator/deallocate_local-2.cc: Guard checks with _GLIBCXX_USE___CXA_ATEXIT. * testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: Same. * testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: Same. * testsuite/ext/mt_allocator/deallocate_global-4.cc: Same. * testsuite/ext/mt_allocator/deallocate_global-2.cc: Same. * testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: Same. * testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: Same. * testsuite/ext/mt_allocator/deallocate_local-4.cc: Same. From-SVN: r88809
Diffstat (limited to 'libstdc++-v3/docs')
-rw-r--r--libstdc++-v3/docs/html/ext/mt_allocator.html28
1 files changed, 20 insertions, 8 deletions
diff --git a/libstdc++-v3/docs/html/ext/mt_allocator.html b/libstdc++-v3/docs/html/ext/mt_allocator.html
index 9ddd5a0..f2f8348 100644
--- a/libstdc++-v3/docs/html/ext/mt_allocator.html
+++ b/libstdc++-v3/docs/html/ext/mt_allocator.html
@@ -265,14 +265,26 @@ The _S_initialize() function:
I.e. _S_bin[ n ].free[ n ] = 0;
</p>
<p>
- - Initialize the mutex of each bin_record:
- The bin_record-&gt;mutex is used to protect the global freelist. This concept
- of a global freelist is explained in more detail in the section
- "A multi threaded example", but basically this mutex is locked whenever
- a block of memory is retrieved or returned to the global freelist for this
- specific bin. This only occurs when a number of blocks are grabbed from the
- global list to a thread specific list or when a thread decides to return
- some blocks to the global freelist.
+ - Initialize the mutex of each bin_record: The bin_record-&gt;mutex
+ is used to protect the global freelist. This concept of a global
+ freelist is explained in more detail in the section "A multi
+ threaded example", but basically this mutex is locked whenever a
+ block of memory is retrieved or returned to the global freelist
+ for this specific bin. This only occurs when a number of blocks
+ are grabbed from the global list to a thread specific list or when
+ a thread decides to return some blocks to the global freelist.
+</p>
+
+<p> Notes about deallocation. On systems with the function
+<code>__cxa_atexit</code>, the allocator will free all memory
+allocated before program termination. However, because this relies on
+the precise and exactly-conforming ordering of static destructors,
+including those of a static local <code>__pool</code> object, it is
+not available on systems that don't have the necessary underlying
+support. On those systems, memory debugging programs like valgrind or
+purify may notice leaks: sorry about this inconvenience. However, most
+operating systems actually reclaim this memory at program termination
+anyway.
</p>
<h3 class="left">