Commit 656cee9a by Benjamin Kosnik Committed by Benjamin Kosnik

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
parent 236a6635
2004-11-02 Benjamin Kosnik <bkoz@redhat.com> 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 PR libstdc++/17922
* include/bits/ios_base.h : Add enum values. * include/bits/ios_base.h : Add enum values.
......
...@@ -37,9 +37,17 @@ ...@@ -37,9 +37,17 @@
#include <cstring> #include <cstring>
#include <cstdio> #include <cstdio>
#include <cctype> #include <cctype>
#include <bits/concurrence.h>
using namespace std; 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 namespace __gnu_debug
{ {
const char* _S_debug_messages[] = const char* _S_debug_messages[] =
...@@ -188,6 +196,7 @@ namespace __gnu_debug ...@@ -188,6 +196,7 @@ namespace __gnu_debug
// Attach to the new sequence (if there is one) // Attach to the new sequence (if there is one)
if (__seq) if (__seq)
{ {
__gnu_cxx::lock sentry(__gnu_internal::iterator_base_attach_mutex);
_M_sequence = __seq; _M_sequence = __seq;
_M_version = _M_sequence->_M_version; _M_version = _M_sequence->_M_version;
_M_prior = 0; _M_prior = 0;
...@@ -212,6 +221,7 @@ namespace __gnu_debug ...@@ -212,6 +221,7 @@ namespace __gnu_debug
_Safe_iterator_base:: _Safe_iterator_base::
_M_detach() _M_detach()
{ {
__gnu_cxx::lock sentry(__gnu_internal::iterator_base_detach_mutex);
if (_M_sequence) if (_M_sequence)
{ {
// Remove us from this sequence's list // Remove us from this sequence's list
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment