aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/ext/mt_allocator.h
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2004-10-12 01:10:39 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2004-10-12 01:10:39 +0000
commit5a1e5472f5864b2a31d3ccee2c08fc26496dfeab (patch)
tree78c99a88a4a9f7e8634edb1c6c35d4a19485dba1 /libstdc++-v3/include/ext/mt_allocator.h
parente7b5576858b1f5772430e94f8ded17d0fb7764d0 (diff)
downloadgcc-5a1e5472f5864b2a31d3ccee2c08fc26496dfeab.zip
gcc-5a1e5472f5864b2a31d3ccee2c08fc26496dfeab.tar.gz
gcc-5a1e5472f5864b2a31d3ccee2c08fc26496dfeab.tar.bz2
re PR libstdc++/17937 (Critical ~__pool troubles)
2004-10-11 Benjamin Kosnik <bkoz@redhat.com> * include/bits/stl_deque.h: Correct for over-long lines. 2004-10-11 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/17937 * include/ext/mt_allocator.h (__pool::_M_destroy): New. * src/mt_allocator.cc (__pool::~__pool): Change definitions to _M_destroy. * acconfig.h: Remove _GLIBCXX_USE___CXA_ATEXIT. * acinclude.m4 (GLIBCXX_ENABLE_CXA_ATEXIT): Remove. * configure.ac: Remove call to GLIBCXX_ENABLE_CXA_EXIT. * configure: Regenerate. * config/linker-map.gnu: Tweak exports. * docs/html/ext/mt_allocator.html: Update docs. * testsuite/ext/mt_allocator/deallocate_global-2.cc: Fix. * testsuite/ext/mt_allocator/deallocate_global-4.cc: Fix. * testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: Fix. * testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: Fix. * testsuite/ext/mt_allocator/deallocate_local-2.cc: Fix. * testsuite/ext/mt_allocator/deallocate_local-4.cc: Fix. * testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: Fix. * testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: Fix. From-SVN: r88913
Diffstat (limited to 'libstdc++-v3/include/ext/mt_allocator.h')
-rw-r--r--libstdc++-v3/include/ext/mt_allocator.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/libstdc++-v3/include/ext/mt_allocator.h b/libstdc++-v3/include/ext/mt_allocator.h
index 5803f5a..115ade7 100644
--- a/libstdc++-v3/include/ext/mt_allocator.h
+++ b/libstdc++-v3/include/ext/mt_allocator.h
@@ -274,6 +274,9 @@ namespace __gnu_cxx
}
}
+ void
+ _M_destroy() throw();
+
char*
_M_reserve_block(size_t __bytes, const size_t __thread_id);
@@ -319,7 +322,7 @@ namespace __gnu_cxx
_M_once = __tmp;
}
- ~__pool();
+ ~__pool() { }
private:
// An "array" of bin_records each of which represents a specific
@@ -364,6 +367,9 @@ namespace __gnu_cxx
_M_initialize();
}
+ void
+ _M_destroy() throw();
+
char*
_M_reserve_block(size_t __bytes, const size_t __thread_id);
@@ -387,7 +393,7 @@ namespace __gnu_cxx
explicit __pool(const __pool_base::_Tune& __tune)
: __pool_base(__tune), _M_bin(NULL), _M_bin_size(1) { }
- ~__pool();
+ ~__pool() { }
private:
// An "array" of bin_records each of which represents a specific
@@ -638,9 +644,6 @@ namespace __gnu_cxx
typedef __mt_alloc<_Tp1, pol_type> other;
};
- // Create pool instance so that order of construction will be
- // pool_type first, then allocator. This is necessary for
- // correct global and static object construction/destruction.
__mt_alloc() throw()
{ __policy_type::_S_get_pool(); }