$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r80134 - in trunk: boost/thread/detail libs/thread/src/win32
From: vicente.botet_at_[hidden]
Date: 2012-08-22 02:12:47
Author: viboes
Date: 2012-08-22 02:12:46 EDT (Wed, 22 Aug 2012)
New Revision: 80134
URL: http://svn.boost.org/trac/boost/changeset/80134
Log:
Thread: fix win regression
Text files modified: 
   trunk/boost/thread/detail/thread.hpp   |    37 +++++++++++++++++++------------------   
   trunk/libs/thread/src/win32/thread.cpp |    23 +++++++++++++++++++++++                 
   2 files changed, 42 insertions(+), 18 deletions(-)
Modified: trunk/boost/thread/detail/thread.hpp
==============================================================================
--- trunk/boost/thread/detail/thread.hpp	(original)
+++ trunk/boost/thread/detail/thread.hpp	2012-08-22 02:12:46 EDT (Wed, 22 Aug 2012)
@@ -366,24 +366,25 @@
         bool timed_join(const system_time& abs_time);
 
 #ifdef BOOST_THREAD_USES_CHRONO
-        bool try_join_until(const chrono::time_point<chrono::system_clock, chrono::nanoseconds>& tp)
-        {
-          if (this_thread::get_id() == get_id())
-          {
-            boost::throw_exception(thread_resource_error(system::errc::resource_deadlock_would_occur, "boost thread: trying joining itself"));
-          }
-          detail::thread_data_ptr local_thread_info=(get_thread_info)();
-          if(local_thread_info)
-          {
-            chrono::milliseconds rel_time= chrono::ceil<chrono::milliseconds>(tp-chrono::system_clock::now());
-            if(!this_thread::interruptible_wait(local_thread_info->thread_handle,rel_time.count()))
-            {
-                return false;
-            }
-            release_handle();
-          }
-          return true;
-        }
+        bool try_join_until(const chrono::time_point<chrono::system_clock, chrono::nanoseconds>& tp);
+//        bool try_join_until(const chrono::time_point<chrono::system_clock, chrono::nanoseconds>& tp)
+//        {
+//          if (this_thread::get_id() == get_id())
+//          {
+//            boost::throw_exception(thread_resource_error(system::errc::resource_deadlock_would_occur, "boost thread: trying joining itself"));
+//          }
+//          detail::thread_data_ptr local_thread_info=(get_thread_info)();
+//          if(local_thread_info)
+//          {
+//            chrono::milliseconds rel_time= chrono::ceil<chrono::milliseconds>(tp-chrono::system_clock::now());
+//            if(!this_thread::interruptible_wait(local_thread_info->thread_handle,rel_time.count()))
+//            {
+//                return false;
+//            }
+//            release_handle();
+//          }
+//          return true;
+//        }
 #endif
     public:
 
Modified: trunk/libs/thread/src/win32/thread.cpp
==============================================================================
--- trunk/libs/thread/src/win32/thread.cpp	(original)
+++ trunk/libs/thread/src/win32/thread.cpp	2012-08-22 02:12:46 EDT (Wed, 22 Aug 2012)
@@ -334,6 +334,29 @@
         return true;
     }
 
+#ifdef BOOST_THREAD_USES_CHRONO
+
+    bool thread::try_join_until(const chrono::time_point<chrono::system_clock, chrono::nanoseconds>& tp)
+    {
+      if (this_thread::get_id() == get_id())
+      {
+        boost::throw_exception(thread_resource_error(system::errc::resource_deadlock_would_occur, "boost thread: trying joining itself"));
+      }
+      detail::thread_data_ptr local_thread_info=(get_thread_info)();
+      if(local_thread_info)
+      {
+        chrono::milliseconds rel_time= chrono::ceil<chrono::milliseconds>(tp-chrono::system_clock::now());
+        if(!this_thread::interruptible_wait(local_thread_info->thread_handle,rel_time.count()))
+        {
+            return false;
+        }
+        release_handle();
+      }
+      return true;
+    }
+
+#endif
+
     void thread::detach() BOOST_NOEXCEPT
     {
         release_handle();