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
+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 <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[] =
// 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;
_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