Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r76570 - in trunk: boost/thread boost/thread/detail boost/thread/pthread boost/thread/v2 boost/thread/win32 libs/thread/src/pthread libs/thread/src/win32 libs/thread/test
From: vicente.botet_at_[hidden]
Date: 2012-01-17 19:13:19


Author: viboes
Date: 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
New Revision: 76570
URL: http://svn.boost.org/trac/boost/changeset/76570

Log:
Thread: try to make it possible to avoid the use of Boost.Chrono
Text files modified:
   trunk/boost/thread/detail/config.hpp | 4 +++
   trunk/boost/thread/detail/thread.hpp | 8 ++++++
   trunk/boost/thread/future.hpp | 11 ++++++++
   trunk/boost/thread/locks.hpp | 10 +++++++
   trunk/boost/thread/pthread/condition_variable.hpp | 6 +++++
   trunk/boost/thread/pthread/condition_variable_fwd.hpp | 8 +++++
   trunk/boost/thread/pthread/mutex.hpp | 4 +++
   trunk/boost/thread/pthread/once.hpp | 6 ++--
   trunk/boost/thread/pthread/recursive_mutex.hpp | 4 +++
   trunk/boost/thread/pthread/thread_data.hpp | 7 ++++-
   trunk/boost/thread/v2/thread.hpp | 5 ++++
   trunk/boost/thread/win32/basic_recursive_mutex.hpp | 5 +++
   trunk/boost/thread/win32/basic_timed_mutex.hpp | 3 +
   trunk/boost/thread/win32/condition_variable.hpp | 10 +++++++
   trunk/boost/thread/win32/thread_data.hpp | 5 +++
   trunk/libs/thread/src/pthread/thread.cpp | 3 +
   trunk/libs/thread/src/win32/thread.cpp | 2 +
   trunk/libs/thread/test/Jamfile.v2 | 48 +++++++++++++++++++++++++---------------
   18 files changed, 118 insertions(+), 31 deletions(-)

Modified: trunk/boost/thread/detail/config.hpp
==============================================================================
--- trunk/boost/thread/detail/config.hpp (original)
+++ trunk/boost/thread/detail/config.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -19,6 +19,10 @@
 #endif
 #endif
 
+#if ! defined BOOST_THREAD_DONT_USE_CHRONO
+#define BOOST_THREAD_USES_CHRONO
+#endif
+
 #define BOOST_THREAD_USES_MOVE
 
 #ifdef BOOST_NO_SCOPED_ENUMS

Modified: trunk/boost/thread/detail/thread.hpp
==============================================================================
--- trunk/boost/thread/detail/thread.hpp (original)
+++ trunk/boost/thread/detail/thread.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -34,8 +34,10 @@
 #include <boost/type_traits/is_same.hpp>
 #include <boost/type_traits/decay.hpp>
 #include <boost/functional/hash.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
 #include <boost/chrono/system_clocks.hpp>
 #include <boost/chrono/ceil.hpp>
+#endif
 
 #include <boost/config/abi_prefix.hpp>
 
@@ -497,6 +499,7 @@
 #if defined(BOOST_THREAD_PLATFORM_WIN32)
         bool timed_join(const system_time& abs_time);
 
+#ifdef BOOST_THREAD_USES_CHRONO
         template <class Rep, class Period>
         bool try_join_for(const chrono::duration<Rep, Period>& rel_time)
         {
@@ -509,8 +512,11 @@
           typename Clock::time_point c_now = Clock::now();
           return try_join_for(chrono::ceil<chrono::milliseconds>(t - c_now));
         }
+#endif
     private:
+#ifdef BOOST_THREAD_USES_CHRONO
       bool do_try_join_for(chrono::milliseconds const &rel_time_in_milliseconds);
+#endif
     public:
 
 #else
@@ -518,6 +524,7 @@
           struct timespec const ts=detail::get_timespec(abs_time);
           return do_try_join_until(ts);
         }
+#ifdef BOOST_THREAD_USES_CHRONO
         template <class Rep, class Period>
         bool try_join_for(const chrono::duration<Rep, Period>& rel_time)
         {
@@ -548,6 +555,7 @@
           ts.tv_nsec = static_cast<long>((d - s).count());
           return do_try_join_until(ts);
         }
+#endif
       private:
         bool do_try_join_until(struct timespec const &timeout);
       public:

Modified: trunk/boost/thread/future.hpp
==============================================================================
--- trunk/boost/thread/future.hpp (original)
+++ trunk/boost/thread/future.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -31,7 +31,9 @@
 #include <boost/next_prior.hpp>
 #include <vector>
 #include <boost/system/error_code.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
 #include <boost/chrono/system_clocks.hpp>
+#endif
 
 #if BOOST_THREAD_VERSION==1
 #define BOOST_THREAD_FUTURE unique_future
@@ -290,6 +292,8 @@
                 return true;
             }
 
+#ifdef BOOST_THREAD_USES_CHRONO
+
             template <class Clock, class Duration>
             future_status
             wait_until(const chrono::time_point<Clock, Duration>& abs_time)
@@ -306,6 +310,7 @@
               }
               return future_status::ready;
             }
+#endif
             void mark_exceptional_finish_internal(boost::exception_ptr const& e)
             {
                 exception=e;
@@ -939,6 +944,7 @@
             }
             return future_->timed_wait_until(abs_time);
         }
+#ifdef BOOST_THREAD_USES_CHRONO
         template <class Rep, class Period>
         future_status
         wait_for(const chrono::duration<Rep, Period>& rel_time) const
@@ -956,7 +962,7 @@
           }
           return future_->wait_until(abs_time);
         }
-
+#endif
     };
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
@@ -1155,6 +1161,8 @@
             }
             return future_->timed_wait_until(abs_time);
         }
+#ifdef BOOST_THREAD_USES_CHRONO
+
         template <class Rep, class Period>
         future_status
         wait_for(const chrono::duration<Rep, Period>& rel_time) const
@@ -1172,6 +1180,7 @@
           }
           return future_->wait_until(abs_time);
         }
+#endif
     };
 
 #ifdef BOOST_NO_RVALUE_REFERENCES

Modified: trunk/boost/thread/locks.hpp
==============================================================================
--- trunk/boost/thread/locks.hpp (original)
+++ trunk/boost/thread/locks.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -12,8 +12,10 @@
 #include <boost/thread/thread_time.hpp>
 #include <boost/detail/workaround.hpp>
 #include <boost/type_traits/is_class.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
 #include <boost/chrono/time_point.hpp>
 #include <boost/chrono/duration.hpp>
+#endif
 
 #include <boost/config/abi_prefix.hpp>
 
@@ -339,6 +341,7 @@
             timed_lock(target_time);
         }
 
+#ifdef BOOST_THREAD_USES_CHRONO
         template <class Clock, class Duration>
         unique_lock(Mutex& mtx, const chrono::time_point<Clock, Duration>& t)
                 : m(&mtx), is_locked(mtx.try_lock_until(t))
@@ -349,7 +352,7 @@
                 : m(&mtx), is_locked(mtx.try_lock_for(d))
         {
         }
-
+#endif
 
 #ifndef BOOST_NO_RVALUE_REFERENCES
         unique_lock(unique_lock&& other) BOOST_NOEXCEPT:
@@ -550,6 +553,9 @@
             is_locked=m->timed_lock(absolute_time);
             return is_locked;
         }
+
+#ifdef BOOST_THREAD_USES_CHRONO
+
         template <class Rep, class Period>
         bool try_lock_for(const chrono::duration<Rep, Period>& rel_time)
         {
@@ -578,6 +584,8 @@
           is_locked=m->try_lock_until(abs_time);
           return is_locked;
         }
+#endif
+
         void unlock()
         {
           if(m==0)

Modified: trunk/boost/thread/pthread/condition_variable.hpp
==============================================================================
--- trunk/boost/thread/pthread/condition_variable.hpp (original)
+++ trunk/boost/thread/pthread/condition_variable.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -10,6 +10,10 @@
 #include <boost/thread/pthread/pthread_mutex_scoped_lock.hpp>
 #include <boost/thread/pthread/thread_data.hpp>
 #include <boost/thread/pthread/condition_variable_fwd.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#include <boost/chrono/ceil.hpp>
+#endif
 
 #include <boost/config/abi_prefix.hpp>
 
@@ -202,6 +206,7 @@
             return timed_wait(m,get_system_time()+wait_duration,pred);
         }
 
+#ifdef BOOST_THREAD_USES_CHRONO
         template <class lock_type,class Duration>
         cv_status
         wait_until(
@@ -289,6 +294,7 @@
             ts.tv_nsec = static_cast<long>((d - s).count());
             do_timed_wait(lk, ts);
         }
+#endif
 
         void notify_one() BOOST_NOEXCEPT
         {

Modified: trunk/boost/thread/pthread/condition_variable_fwd.hpp
==============================================================================
--- trunk/boost/thread/pthread/condition_variable_fwd.hpp (original)
+++ trunk/boost/thread/pthread/condition_variable_fwd.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -14,8 +14,10 @@
 #include <boost/thread/locks.hpp>
 #include <boost/thread/thread_time.hpp>
 #include <boost/thread/xtime.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
 #include <boost/chrono/system_clocks.hpp>
 #include <boost/chrono/ceil.hpp>
+#endif
 
 #include <boost/config/abi_prefix.hpp>
 
@@ -122,6 +124,8 @@
             return timed_wait(m,get_system_time()+wait_duration,pred);
         }
 
+#ifdef BOOST_THREAD_USES_CHRONO
+
         template <class Duration>
         cv_status
         wait_until(
@@ -195,6 +199,7 @@
           }
           return true;
         }
+#endif
 
         typedef pthread_cond_t* native_handle_type;
         native_handle_type native_handle()
@@ -205,6 +210,7 @@
         void notify_one() BOOST_NOEXCEPT;
         void notify_all() BOOST_NOEXCEPT;
 
+#ifdef BOOST_THREAD_USES_CHRONO
         inline void wait_until(
             unique_lock<mutex>& lk,
             chrono::time_point<chrono::system_clock, chrono::nanoseconds> tp)
@@ -217,7 +223,7 @@
             ts.tv_nsec = static_cast<long>((d - s).count());
             do_timed_wait(lk, ts);
         }
-
+#endif
         //private: // used by boost::thread::try_join_until
 
         inline bool do_timed_wait(

Modified: trunk/boost/thread/pthread/mutex.hpp
==============================================================================
--- trunk/boost/thread/pthread/mutex.hpp (original)
+++ trunk/boost/thread/pthread/mutex.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -16,8 +16,10 @@
 #include <errno.h>
 #include <boost/thread/pthread/timespec.hpp>
 #include <boost/thread/pthread/pthread_mutex_scoped_lock.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
 #include <boost/chrono/system_clocks.hpp>
 #include <boost/chrono/ceil.hpp>
+#endif
 
 #ifdef _POSIX_TIMEOUTS
 #if _POSIX_TIMEOUTS >= 0 && _POSIX_C_SOURCE>=200112L
@@ -250,6 +252,7 @@
             return do_try_lock_until(ts);
         }
 
+#ifdef BOOST_THREAD_USES_CHRONO
         template <class Rep, class Period>
         bool try_lock_for(const chrono::duration<Rep, Period>& rel_time)
         {
@@ -280,6 +283,7 @@
           ts.tv_nsec = static_cast<long>((d - s).count());
           return do_try_lock_until(ts);
         }
+#endif
 
         typedef pthread_mutex_t* native_handle_type;
         native_handle_type native_handle()

Modified: trunk/boost/thread/pthread/once.hpp
==============================================================================
--- trunk/boost/thread/pthread/once.hpp (original)
+++ trunk/boost/thread/pthread/once.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -21,7 +21,7 @@
 namespace boost
 {
 
-#if BOOST_THREAD_VERSION==2
+#if BOOST_THREAD_VERSION==3
 
   struct once_flag
   {
@@ -42,7 +42,7 @@
 
   };
 
-#else // BOOST_THREAD_VERSION==2
+#else // BOOST_THREAD_VERSION==3
 
     struct once_flag
     {
@@ -52,7 +52,7 @@
 #define BOOST_ONCE_INITIAL_FLAG_VALUE 0
 #define BOOST_ONCE_INIT {BOOST_ONCE_INITIAL_FLAG_VALUE}
 
-#endif // BOOST_THREAD_VERSION==2
+#endif // BOOST_THREAD_VERSION==3
 
     namespace detail
     {

Modified: trunk/boost/thread/pthread/recursive_mutex.hpp
==============================================================================
--- trunk/boost/thread/pthread/recursive_mutex.hpp (original)
+++ trunk/boost/thread/pthread/recursive_mutex.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -19,8 +19,10 @@
 #include <errno.h>
 #include <boost/thread/pthread/timespec.hpp>
 #include <boost/thread/pthread/pthread_mutex_scoped_lock.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
 #include <boost/chrono/system_clocks.hpp>
 #include <boost/chrono/ceil.hpp>
+#endif
 
 #ifdef _POSIX_TIMEOUTS
 #if _POSIX_TIMEOUTS >= 0
@@ -352,6 +354,7 @@
             return do_try_lock_until(ts);
         }
 
+#ifdef BOOST_THREAD_USES_CHRONO
         template <class Rep, class Period>
         bool try_lock_for(const chrono::duration<Rep, Period>& rel_time)
         {
@@ -382,6 +385,7 @@
           ts.tv_nsec = static_cast<long>((d - s).count());
           return do_try_lock_until(ts);
         }
+#endif
 
         typedef pthread_mutex_t* native_handle_type;
         native_handle_type native_handle()

Modified: trunk/boost/thread/pthread/thread_data.hpp
==============================================================================
--- trunk/boost/thread/pthread/thread_data.hpp (original)
+++ trunk/boost/thread/pthread/thread_data.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -16,7 +16,9 @@
 #include <boost/thread/pthread/condition_variable_fwd.hpp>
 #include <map>
 #include <unistd.h>
-
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#endif
 #include <boost/config/abi_prefix.hpp>
 
 namespace boost
@@ -170,8 +172,9 @@
 
     namespace this_thread
     {
+#ifdef BOOST_THREAD_USES_CHRONO
         void BOOST_SYMBOL_VISIBLE sleep_for(const chrono::nanoseconds& ns);
-
+#endif
         void BOOST_THREAD_DECL yield() BOOST_NOEXCEPT;
 
 #ifdef __DECXXX

Modified: trunk/boost/thread/v2/thread.hpp
==============================================================================
--- trunk/boost/thread/v2/thread.hpp (original)
+++ trunk/boost/thread/v2/thread.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -7,7 +7,9 @@
 #define BOOST_THREAD_V2_THREAD_HPP
 
 #include <boost/thread/detail/config.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
 #include <boost/chrono/system_clocks.hpp>
+#endif
 #include <boost/thread/condition_variable.hpp>
 #include <boost/thread/locks.hpp>
 
@@ -16,6 +18,7 @@
   namespace this_thread
   {
 
+#ifdef BOOST_THREAD_USES_CHRONO
 
     template <class Rep, class Period>
     void sleep_for(const chrono::duration<Rep, Period>& d)
@@ -44,6 +47,8 @@
       using namespace chrono;
       sleep_for(t - steady_clock::now());
     }
+
+#endif
   }
 }
 

Modified: trunk/boost/thread/win32/basic_recursive_mutex.hpp
==============================================================================
--- trunk/boost/thread/win32/basic_recursive_mutex.hpp (original)
+++ trunk/boost/thread/win32/basic_recursive_mutex.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -11,8 +11,10 @@
 
 #include <boost/thread/win32/thread_primitives.hpp>
 #include <boost/thread/win32/basic_timed_mutex.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
 #include <boost/chrono/system_clocks.hpp>
 #include <boost/chrono/ceil.hpp>
+#endif
 
 #include <boost/config/abi_prefix.hpp>
 
@@ -66,6 +68,7 @@
                 return timed_lock(get_system_time()+timeout);
             }
 
+#ifdef BOOST_THREAD_USES_CHRONO
         template <class Rep, class Period>
         bool try_lock_for(const chrono::duration<Rep, Period>& rel_time)
         {
@@ -78,7 +81,7 @@
                 long const current_thread_id=win32::GetCurrentThreadId();
                 return try_recursive_lock(current_thread_id) || try_timed_lock_until(current_thread_id,t);
         }
-
+#endif
             void unlock()
             {
                 if(!--recursion_count)

Modified: trunk/boost/thread/win32/basic_timed_mutex.hpp
==============================================================================
--- trunk/boost/thread/win32/basic_timed_mutex.hpp (original)
+++ trunk/boost/thread/win32/basic_timed_mutex.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -15,9 +15,10 @@
 #include <boost/thread/thread_time.hpp>
 #include <boost/thread/xtime.hpp>
 #include <boost/detail/interlocked.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
 #include <boost/chrono/system_clocks.hpp>
 #include <boost/chrono/ceil.hpp>
-
+#endif
 #include <boost/config/abi_prefix.hpp>
 
 namespace boost

Modified: trunk/boost/thread/win32/condition_variable.hpp
==============================================================================
--- trunk/boost/thread/win32/condition_variable.hpp (original)
+++ trunk/boost/thread/win32/condition_variable.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -18,6 +18,10 @@
 #include <boost/thread/xtime.hpp>
 #include <vector>
 #include <boost/intrusive_ptr.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#include <boost/chrono/ceil.hpp>
+#endif
 
 #include <boost/config/abi_prefix.hpp>
 
@@ -350,6 +354,8 @@
             return do_wait(m,wait_duration.total_milliseconds(),pred);
         }
 
+#ifdef BOOST_THREAD_USES_CHRONO
+
         template <class Clock, class Duration>
         cv_status
         wait_until(
@@ -398,6 +404,7 @@
         {
             return wait_until(lock, chrono::steady_clock::now() + d, pred);
         }
+#endif
     };
 
     class condition_variable_any:
@@ -460,6 +467,7 @@
         {
             return do_wait(m,wait_duration.total_milliseconds(),pred);
         }
+#ifdef BOOST_THREAD_USES_CHRONO
 
         template <class lock_type, class Clock, class Duration>
         cv_status
@@ -510,7 +518,7 @@
         {
             return wait_until(lock, chrono::steady_clock::now() + d, pred);
         }
-
+#endif
     };
 
 }

Modified: trunk/boost/thread/win32/thread_data.hpp
==============================================================================
--- trunk/boost/thread/win32/thread_data.hpp (original)
+++ trunk/boost/thread/win32/thread_data.hpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -10,8 +10,9 @@
 #include <boost/thread/thread_time.hpp>
 #include <boost/thread/win32/thread_primitives.hpp>
 #include <boost/thread/win32/thread_heap_alloc.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
 #include <boost/chrono/system_clocks.hpp>
-
+#endif
 #include <boost/config/abi_prefix.hpp>
 
 namespace boost
@@ -213,10 +214,12 @@
         {
             interruptible_wait(abs_time);
         }
+#ifdef BOOST_THREAD_USES_CHRONO
         inline void BOOST_SYMBOL_VISIBLE sleep_for(const chrono::nanoseconds& ns)
         {
           interruptible_wait(chrono::duration_cast<chrono::milliseconds>(ns).count());
         }
+#endif
     }
 
 }

Modified: trunk/libs/thread/src/pthread/thread.cpp
==============================================================================
--- trunk/libs/thread/src/pthread/thread.cpp (original)
+++ trunk/libs/thread/src/pthread/thread.cpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -422,6 +422,7 @@
             }
         }
 
+#ifdef BOOST_THREAD_USES_CHRONO
         void
         sleep_for(const chrono::nanoseconds& ns)
         {
@@ -446,6 +447,7 @@
 # endif
             }
         }
+#endif
 
         void yield() BOOST_NOEXCEPT
         {
@@ -460,7 +462,6 @@
 # endif
         }
     }
-
     unsigned thread::hardware_concurrency() BOOST_NOEXCEPT
     {
 #if defined(PTW32_VERSION) || defined(__hpux)

Modified: trunk/libs/thread/src/win32/thread.cpp
==============================================================================
--- trunk/libs/thread/src/win32/thread.cpp (original)
+++ trunk/libs/thread/src/win32/thread.cpp 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -317,6 +317,7 @@
         return true;
     }
 
+#ifdef BOOST_THREAD_USES_CHRONO
     bool thread::do_try_join_for(chrono::milliseconds const &rel_time_in_milliseconds) {
       if (this_thread::get_id() == get_id())
       {
@@ -334,6 +335,7 @@
       return true;
 
     }
+#endif
 
     void thread::detach()
     {

Modified: trunk/libs/thread/test/Jamfile.v2
==============================================================================
--- trunk/libs/thread/test/Jamfile.v2 (original)
+++ trunk/libs/thread/test/Jamfile.v2 2012-01-17 19:13:17 EST (Tue, 17 Jan 2012)
@@ -35,9 +35,21 @@
 rule thread-run2 ( sources : name )
 {
     return
- [ run $(sources) ../build//boost_thread : : : : $(name) ]
+ [ run $(sources) ../build//boost_thread : : :
+ : $(name) ]
     [ run $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static
- : : : : $(name)_lib ]
+ : : :
+ : $(name)_lib ]
+ ;
+}
+
+
+rule thread-compile-fail-V2 ( sources : reqs * : name )
+{
+ return
+ [ compile-fail $(sources)
+ : $(reqs)
+ : $(name) ]
     ;
 }
 
@@ -105,8 +117,8 @@
     #explicit conditions ;
     test-suite conditions
     :
- [ compile-fail ./sync/conditions/condition_variable/assign_fail.cpp : : conditions__condition_variable__assign_fail ]
- [ compile-fail ./sync/conditions/condition_variable/copy_fail.cpp : : conditions__condition_variable__copy_fail ]
+ [ thread-compile-fail-V2 ./sync/conditions/condition_variable/assign_fail.cpp : : conditions__condition_variable__assign_fail ]
+ [ thread-compile-fail-V2 ./sync/conditions/condition_variable/copy_fail.cpp : : conditions__condition_variable__copy_fail ]
           [ thread-run2 ./sync/conditions/condition_variable/default_pass.cpp : conditions__condition_variable__default_pass ]
           [ thread-run2 ./sync/conditions/condition_variable/dtor_pass.cpp : conditions__condition_variable__dtor_pass ]
           [ thread-run2 ./sync/conditions/condition_variable/native_handle_pass.cpp : conditions__condition_variable__native_handle_pass ]
@@ -115,8 +127,8 @@
           [ thread-run2 ./sync/conditions/condition_variable/wait_until_pass.cpp : conditions__condition_variable__wait_until_pass ]
           [ thread-run2 ./sync/conditions/condition_variable/wait_until_pred_pass.cpp : conditions__condition_variable__wait_until_pred_pass ]
 
- [ compile-fail ./sync/conditions/condition_variable_any/assign_fail.cpp : : conditions__condition_variable_any__assign_fail ]
- [ compile-fail ./sync/conditions/condition_variable_any/copy_fail.cpp : : conditions__condition_variable_any__copy_fail ]
+ [ thread-compile-fail-V2 ./sync/conditions/condition_variable_any/assign_fail.cpp : : conditions__condition_variable_any__assign_fail ]
+ [ thread-compile-fail-V2 ./sync/conditions/condition_variable_any/copy_fail.cpp : : conditions__condition_variable_any__copy_fail ]
           [ thread-run2 ./sync/conditions/condition_variable_any/default_pass.cpp : conditions__condition_variable_any__default_pass ]
           [ thread-run2 ./sync/conditions/condition_variable_any/dtor_pass.cpp : conditions__condition_variable_any__dtor_pass ]
           [ thread-run2 ./sync/conditions/condition_variable_any/wait_for_pass.cpp : conditions__condition_variable_any__wait_for_pass ]
@@ -145,8 +157,8 @@
     test-suite mutual_exclusion
     :
 
- [ compile-fail ./sync/mutual_exclusion/locks/unique_lock/cons/copy_assign_fail.cpp : : mutual_exclusion__locks__unique_lock__cons__copy_assign_fail ]
- [ compile-fail ./sync/mutual_exclusion/locks/unique_lock/cons/copy_ctor_fail.cpp : : mutual_exclusion__locks__unique_lock__cons__copy_ctor_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/locks/unique_lock/cons/copy_assign_fail.cpp : : mutual_exclusion__locks__unique_lock__cons__copy_assign_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/locks/unique_lock/cons/copy_ctor_fail.cpp : : mutual_exclusion__locks__unique_lock__cons__copy_ctor_fail ]
           [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/cons/adopt_lock_pass.cpp : mutual_exclusion__locks__unique_lock__cons__adopt_lock_pass ]
           [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/cons/default_pass.cpp : mutual_exclusion__locks__unique_lock__cons__default_pass ]
           [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/cons/defer_lock_pass.cpp : mutual_exclusion__locks__unique_lock__cons__defer_lock_pass ]
@@ -169,22 +181,22 @@
           [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/obs/owns_lock_pass.cpp : mutual_exclusion__locks__unique_lock__obs__owns_lock_pass ]
           [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/types_pass.cpp : mutual_exclusion__locks__unique_lock__types_pass ]
 
- [ compile-fail ./sync/mutual_exclusion/mutex/assign_fail.cpp : : mutual_exclusion__mutex__assign_fail ]
- [ compile-fail ./sync/mutual_exclusion/mutex/copy_fail.cpp : : mutual_exclusion__mutex__copy_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/mutex/assign_fail.cpp : : mutual_exclusion__mutex__assign_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/mutex/copy_fail.cpp : : mutual_exclusion__mutex__copy_fail ]
           [ thread-run2 ./sync/mutual_exclusion/mutex/default_pass.cpp : mutual_exclusion__mutex__default_pass ]
           [ thread-run2 ./sync/mutual_exclusion/mutex/lock_pass.cpp : mutual_exclusion__mutex__lock_pass ]
           [ thread-run2 ./sync/mutual_exclusion/mutex/native_handle_pass.cpp : mutual_exclusion__mutex__native_handle_pass ]
           [ thread-run2 ./sync/mutual_exclusion/mutex/try_lock_pass.cpp : mutual_exclusion__mutex__try_lock_pass ]
 
- [ compile-fail ./sync/mutual_exclusion/recursive_mutex/assign_fail.cpp : : mutual_exclusion__recursive_mutex__assign_fail ]
- [ compile-fail ./sync/mutual_exclusion/recursive_mutex/copy_fail.cpp : : mutual_exclusion__recursive_mutex__copy_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/recursive_mutex/assign_fail.cpp : : mutual_exclusion__recursive_mutex__assign_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/recursive_mutex/copy_fail.cpp : : mutual_exclusion__recursive_mutex__copy_fail ]
           [ thread-run2 ./sync/mutual_exclusion/recursive_mutex/default_pass.cpp : mutual_exclusion__recursive_mutex__default_pass ]
           [ thread-run2 ./sync/mutual_exclusion/recursive_mutex/lock_pass.cpp : mutual_exclusion__recursive_mutex__lock_pass ]
           [ thread-run2 ./sync/mutual_exclusion/recursive_mutex/native_handle_pass.cpp : mutual_exclusion__recursive_mutex__native_handle_pass ]
           [ thread-run2 ./sync/mutual_exclusion/recursive_mutex/try_lock_pass.cpp : mutual_exclusion__recursive_mutex__try_lock_pass ]
 
- [ compile-fail ./sync/mutual_exclusion/recursive_timed_mutex/assign_fail.cpp : : mutual_exclusion__recursive_timed_mutex__assign_fail ]
- [ compile-fail ./sync/mutual_exclusion/recursive_timed_mutex/copy_fail.cpp : : mutual_exclusion__recursive_timed_mutex__copy_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/recursive_timed_mutex/assign_fail.cpp : : mutual_exclusion__recursive_timed_mutex__assign_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/recursive_timed_mutex/copy_fail.cpp : : mutual_exclusion__recursive_timed_mutex__copy_fail ]
           [ thread-run2 ./sync/mutual_exclusion/recursive_timed_mutex/default_pass.cpp : mutual_exclusion__recursive_timed_mutex__default_pass ]
           [ thread-run2 ./sync/mutual_exclusion/recursive_timed_mutex/lock_pass.cpp : mutual_exclusion__recursive_timed_mutex__lock_pass ]
           [ thread-run2 ./sync/mutual_exclusion/recursive_timed_mutex/native_handle_pass.cpp : mutual_exclusion__recursive_timed_mutex__native_handle_pass ]
@@ -192,8 +204,8 @@
           [ thread-run2 ./sync/mutual_exclusion/recursive_timed_mutex/try_lock_pass.cpp : mutual_exclusion__recursive_timed_mutex__try_lock_pass ]
           [ thread-run2 ./sync/mutual_exclusion/recursive_timed_mutex/try_lock_until_pass.cpp : mutual_exclusion__recursive_timed_mutex__try_lock_until_pass ]
 
- [ compile-fail ./sync/mutual_exclusion/timed_mutex/assign_fail.cpp : : mutual_exclusion__timed_mutex__assign_fail ]
- [ compile-fail ./sync/mutual_exclusion/timed_mutex/copy_fail.cpp : : mutual_exclusion__timed_mutex__copy_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/timed_mutex/assign_fail.cpp : : mutual_exclusion__timed_mutex__assign_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/timed_mutex/copy_fail.cpp : : mutual_exclusion__timed_mutex__copy_fail ]
 
           [ thread-run2 ./sync/mutual_exclusion/timed_mutex/default_pass.cpp : mutual_exclusion__timed_mutex__default_pass ]
           [ thread-run2 ./sync/mutual_exclusion/timed_mutex/lock_pass.cpp : mutual_exclusion__timed_mutex__lock_pass ]
@@ -214,9 +226,9 @@
     #explicit thread ;
     test-suite thread
     :
- [ compile-fail ./threads/thread/assign/copy_fail.cpp : : thread__assign__copy_fail ]
+ [ thread-compile-fail-V2 ./threads/thread/assign/copy_fail.cpp : : thread__assign__copy_fail ]
           [ thread-run2 ./threads/thread/assign/move_pass.cpp : thread__assign__move_pass ]
- [ compile-fail ./threads/thread/constr/copy_fail.cpp : : thread__constr__copy_fail ]
+ [ thread-compile-fail-V2 ./threads/thread/constr/copy_fail.cpp : : thread__constr__copy_fail ]
           [ thread-run2 ./threads/thread/constr/default_pass.cpp : thread__constr__default_pass ]
           [ thread-run2 ./threads/thread/constr/F_pass.cpp : thread__constr__F_pass ]
           [ thread-run2 ./threads/thread/constr/Frvalue_pass.cpp : thread__constr__Frvalue_pass ]


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk