OSDN Git Service

2005-10-17 Jonathan Wakely <redi@gcc.gnu.org>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Oct 2005 17:23:42 +0000 (17:23 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Oct 2005 17:23:42 +0000 (17:23 +0000)
PR libstdc++/24244
* include/tr1/boost_shared_ptr.h (_Sp_counted_base::_Sp_counted_base()):
When __GTHREAD_MUTEX_INIT is defined, initialize the mutex.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105506 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/tr1/boost_shared_ptr.h

index b316543..48c588f 100644 (file)
@@ -1,3 +1,9 @@
+2005-10-17  Jonathan Wakely  <redi@gcc.gnu.org>
+
+       PR libstdc++/24244
+       * include/tr1/boost_shared_ptr.h (_Sp_counted_base::_Sp_counted_base()):
+       When __GTHREAD_MUTEX_INIT is defined, initialize the mutex.
+
 2005-10-15  Paolo Carlini  <pcarlini@suse.de>
 
        * include/tr1/functional: Add missing #pragma GCC system_header.
index a998fed..8f95ead 100644 (file)
@@ -101,7 +101,14 @@ public:
 
   _Sp_counted_base()
   : _M_use_count(1), _M_weak_count(1)
-  { }
+  {
+    // For the case of __GTHREAD_MUTEX_INIT we haven't initialised
+    // the mutex yet, so do it now.
+#if defined(__GTHREADS) && defined(__GTHREAD_MUTEX_INIT)
+    __gthread_mutex_t __tmp = __GTHREAD_MUTEX_INIT;
+    _M_mutex = __tmp;
+#endif
+  }
 
   virtual
   ~_Sp_counted_base() // nothrow