diff options
author | Benjamin Kosnik <bkoz@redhat.com> | 2004-11-08 20:47:25 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2004-11-08 20:47:25 +0000 |
commit | 948af8ae9c8d7e085c2a373aeefe9a917d96132d (patch) | |
tree | 6bbb4f382f53c97c5b1a44024f7123be67343ef2 | |
parent | b03c0b9324745ad712930413f140e1364f694102 (diff) | |
download | gcc-948af8ae9c8d7e085c2a373aeefe9a917d96132d.zip gcc-948af8ae9c8d7e085c2a373aeefe9a917d96132d.tar.gz gcc-948af8ae9c8d7e085c2a373aeefe9a917d96132d.tar.bz2 |
re PR libstdc++/17664 ([3.4 only] Crash in std::map when using _GLIBCXX_DEBUG with multithreading)
2004-11-08 Benjamin Kosnik <bkoz@redhat.com>
Doug Gregor <dgregor@cs.indiana.edu>
PR libstdc++/17664
* src/debug.cc: Just use one mutex.
Co-Authored-By: Doug Gregor <dgregor@cs.indiana.edu>
Co-Authored-By: Lothar Werzinger <lothar@xcerla.com>
From-SVN: r90296
-rw-r--r-- | libstdc++-v3/ChangeLog | 8 | ||||
-rw-r--r-- | libstdc++-v3/src/debug.cc | 8 |
2 files changed, 10 insertions, 6 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b415b26..d8740bd 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,4 +1,10 @@ 2004-11-08 Benjamin Kosnik <bkoz@redhat.com> + Doug Gregor <dgregor@cs.indiana.edu> + + PR libstdc++/17664 + * src/debug.cc : Just use one mutex. + +2004-11-08 Benjamin Kosnik <bkoz@redhat.com> * configure.ac (libtool_VERSION): To 6:4:0. * configure: Regenerate. @@ -118,7 +124,7 @@ 2004-11-02 Benjamin Kosnik <bkoz@redhat.com> Lothar Werzinger <lothar@xcerla.com> - PR libstdc++/17627 + PR libstdc++/17664 * src/debug.cc: Include concurrence, use mutexes. (_Safe_iterator_base::_M_attach): Here. (_Safe_iterator_base::_M_detach): Here. diff --git a/libstdc++-v3/src/debug.cc b/libstdc++-v3/src/debug.cc index fe6bba4..415fcbf 100644 --- a/libstdc++-v3/src/debug.cc +++ b/libstdc++-v3/src/debug.cc @@ -43,9 +43,7 @@ using namespace std; namespace __gnu_internal { - __glibcxx_mutex_define_initialized(iterator_base_attach_mutex); - __glibcxx_mutex_define_initialized(iterator_base_detach_mutex); - + __glibcxx_mutex_define_initialized(iterator_base_mutex); } // namespace __gnu_internal namespace __gnu_debug @@ -196,7 +194,7 @@ namespace __gnu_debug // Attach to the new sequence (if there is one) if (__seq) { - __gnu_cxx::lock sentry(__gnu_internal::iterator_base_attach_mutex); + __gnu_cxx::lock sentry(__gnu_internal::iterator_base_mutex); _M_sequence = __seq; _M_version = _M_sequence->_M_version; _M_prior = 0; @@ -221,7 +219,7 @@ namespace __gnu_debug _Safe_iterator_base:: _M_detach() { - __gnu_cxx::lock sentry(__gnu_internal::iterator_base_detach_mutex); + __gnu_cxx::lock sentry(__gnu_internal::iterator_base_mutex); if (_M_sequence) { // Remove us from this sequence's list |