diff options
author | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-10-09 02:30:10 +0000 |
---|---|---|
committer | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-10-09 02:30:10 +0000 |
commit | fac992ef71601620e3ed3ea15c13ecf61b62f92a (patch) | |
tree | 8e3e1d2f5f372fc6e36fa64ac8ac0238e33b9d75 /libstdc++-v3/docs/html | |
parent | cd94930b58bb2195826b0e7a46ca677d75253040 (diff) | |
download | gcc-fac992ef71601620e3ed3ea15c13ecf61b62f92a.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88809 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/docs/html')
-rw-r--r-- | libstdc++-v3/docs/html/ext/mt_allocator.html | 28 |
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 9ddd5a052de..f2f8348ca25 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->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->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"> |