aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2004-11-02 23:56:56 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2004-11-02 23:56:56 +0000
commit656cee9aa2d98addee95f1d2d16be4572a843483 (patch)
tree649f28f567dfb84f30d11523aaf9a889550c4be0
parent236a66353ecdbf38e8de5adb4689c2e66742330d (diff)
downloadgcc-656cee9aa2d98addee95f1d2d16be4572a843483.zip
gcc-656cee9aa2d98addee95f1d2d16be4572a843483.tar.gz
gcc-656cee9aa2d98addee95f1d2d16be4572a843483.tar.bz2
re PR libstdc++/17627 (M68060 fails with libstdc++-v3/config/cpu/m68k/atomicity.h)
2004-11-02 Benjamin Kosnik <bkoz@redhat.com> Lothar Werzinger <lothar@xcerla.com> PR libstdc++/17627 * src/debug.cc: Include concurrence, use mutexes. (_Safe_iterator_base::_M_attach): Here. (_Safe_iterator_base::_M_detach): Here. Co-Authored-By: Lothar Werzinger <lothar@xcerla.com> From-SVN: r90004
-rw-r--r--libstdc++-v3/ChangeLog8
-rw-r--r--libstdc++-v3/src/debug.cc10
2 files changed, 18 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 0b05453..dbbbea9 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,4 +1,12 @@
2004-11-02 Benjamin Kosnik <bkoz@redhat.com>
+ Lothar Werzinger <lothar@xcerla.com>
+
+ PR libstdc++/17627
+ * src/debug.cc: Include concurrence, use mutexes.
+ (_Safe_iterator_base::_M_attach): Here.
+ (_Safe_iterator_base::_M_detach): Here.
+
+2004-11-02 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/17922
* include/bits/ios_base.h : Add enum values.
diff --git a/libstdc++-v3/src/debug.cc b/libstdc++-v3/src/debug.cc
index 0ca9238..fe6bba4 100644
--- a/libstdc++-v3/src/debug.cc
+++ b/libstdc++-v3/src/debug.cc
@@ -37,9 +37,17 @@
#include <cstring>
#include <cstdio>
#include <cctype>
+#include <bits/concurrence.h>
using namespace std;
+namespace __gnu_internal
+{
+ __glibcxx_mutex_define_initialized(iterator_base_attach_mutex);
+ __glibcxx_mutex_define_initialized(iterator_base_detach_mutex);
+
+} // namespace __gnu_internal
+
namespace __gnu_debug
{
const char* _S_debug_messages[] =
@@ -188,6 +196,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);
_M_sequence = __seq;
_M_version = _M_sequence->_M_version;
_M_prior = 0;
@@ -212,6 +221,7 @@ namespace __gnu_debug
_Safe_iterator_base::
_M_detach()
{
+ __gnu_cxx::lock sentry(__gnu_internal::iterator_base_detach_mutex);
if (_M_sequence)
{
// Remove us from this sequence's list