OSDN Git Service

2009-02-05 Chris Fairles <cfairles@gcc.gnu.org>
authorcfairles <cfairles@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Feb 2009 17:47:56 +0000 (17:47 +0000)
committercfairles <cfairles@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Feb 2009 17:47:56 +0000 (17:47 +0000)
            Benjamin Kosnik  <bkoz@redhat.com>

        * include/std/thread (__thread_data_base): Nest class in std::thread.
        (__thread_data): Likewise.
        (__thread_data_ptr): Nest typedef in std::thread.
        * src/thread.cc (__thread_proxy): Qualify the above names.
        * config/abi/pre/gnu.ver: Remove unused exports.

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

libstdc++-v3/ChangeLog
libstdc++-v3/config/abi/pre/gnu.ver
libstdc++-v3/include/std/thread
libstdc++-v3/src/thread.cc

index b1340c4..341e94d 100644 (file)
@@ -1,3 +1,12 @@
+2009-02-05  Chris Fairles  <cfairles@gcc.gnu.org>
+           Benjamin Kosnik  <bkoz@redhat.com>
+       
+       * include/std/thread (__thread_data_base): Nest class in std::thread.
+       (__thread_data): Likewise.
+       (__thread_data_ptr): Nest typedef in std::thread.
+       * src/thread.cc (__thread_proxy): Qualify the above names.
+       * config/abi/pre/gnu.ver: Remove unused exports.
+       
 2009-02-04  Benjamin Kosnik  <bkoz@redhat.com>
 
        * include/bits/unique_ptr.h: Remove private __this_type typedef.
index 7a034db..1754f07 100644 (file)
@@ -897,9 +897,6 @@ GLIBCXX_3.4.11 {
     _ZNSt22condition_variable_anyD2Ev;
 
     # thread
-    _ZNSt10shared_ptrISt18__thread_data_baseED1Ev;
-    _ZNSt12bad_weak_ptrD0Ev;
-    _ZNSt12bad_weak_ptrD1Ev;
     _ZNSt6thread15_M_start_threadEv;
     _ZNSt6thread4joinEv;
     _ZNSt6thread6detachEv;
index 79bf290..231d4b3 100644 (file)
 
 namespace std
 {
-  class __thread_data_base;
-
-  typedef shared_ptr<__thread_data_base> __thread_data_ptr;
-
-  class __thread_data_base
+  class thread
   {
   public:
-    __thread_data_base() = default;
-    virtual ~__thread_data_base() = default;
+    class __thread_data_base;
     
-    virtual void _M_run() = 0;
+    typedef shared_ptr<__thread_data_base> __thread_data_ptr;
     
-    __gthread_t        _M_thread_handle;
-    __thread_data_ptr  _M_this_ptr;
-  };
-  
-  template<typename _Callable>
-    class __thread_data : public __thread_data_base
+    class __thread_data_base
     {
     public:
-      __thread_data(_Callable&& __f)
-      : _M_func(std::forward<_Callable>(__f))
-      { }
-
-      void _M_run()
-      { _M_func(); }
-
-    private:
-      _Callable _M_func;
+      __thread_data_base() = default;
+      virtual ~__thread_data_base() = default;
+      
+      virtual void _M_run() = 0;
+      
+      __gthread_t      _M_thread_handle;
+      __thread_data_ptr        _M_this_ptr;
     };
-
-  /// thread
-  class thread
-  {
-  public:
+    
     // types
     class id;
     typedef __gthread_t native_handle_type;
@@ -153,6 +137,21 @@ namespace std
 
   private:
     template<typename _Callable>
+      class __thread_data : public __thread_data_base
+      {
+      public:
+       __thread_data(_Callable&& __f)
+         : _M_func(std::forward<_Callable>(__f))
+       { }
+       
+       void _M_run()
+       { _M_func(); }
+       
+      private:
+       _Callable _M_func;
+      };
+
+    template<typename _Callable>
       __thread_data_ptr 
       _M_make_thread_data(_Callable&& __f)
       { 
index 58e60cf..e3797e6 100644 (file)
@@ -40,8 +40,9 @@ namespace std
     {
       void* __thread_proxy(void* __p)
       {
-       __thread_data_base* __t = static_cast<__thread_data_base*>(__p);
-       __thread_data_ptr __local_thread_data;
+       thread::__thread_data_base* __t = 
+         static_cast<thread::__thread_data_base*>(__p);
+       thread::__thread_data_ptr __local_thread_data;
        __local_thread_data.swap(__t->_M_this_ptr);
 
        __try