From b18314878a66f693ada9d4090c5820f47014d2ef Mon Sep 17 00:00:00 2001 From: "Vicente J. Botet Escriba" Date: Wed, 18 Jan 2012 00:13:17 +0000 Subject: [PATCH] Thread: try to make it possible to avoid the use of Boost.Chrono [SVN r76570] --- include/boost/thread/detail/config.hpp | 4 ++ include/boost/thread/detail/thread.hpp | 8 ++++ include/boost/thread/future.hpp | 11 ++++- include/boost/thread/locks.hpp | 10 +++- .../thread/pthread/condition_variable.hpp | 6 +++ .../thread/pthread/condition_variable_fwd.hpp | 8 +++- include/boost/thread/pthread/mutex.hpp | 4 ++ include/boost/thread/pthread/once.hpp | 6 +-- .../boost/thread/pthread/recursive_mutex.hpp | 4 ++ include/boost/thread/pthread/thread_data.hpp | 7 ++- include/boost/thread/v2/thread.hpp | 5 ++ .../thread/win32/basic_recursive_mutex.hpp | 5 +- .../boost/thread/win32/basic_timed_mutex.hpp | 3 +- .../boost/thread/win32/condition_variable.hpp | 10 +++- include/boost/thread/win32/thread_data.hpp | 5 +- src/pthread/thread.cpp | 3 +- src/win32/thread.cpp | 2 + test/Jamfile.v2 | 48 ++++++++++++------- 18 files changed, 118 insertions(+), 31 deletions(-) diff --git a/include/boost/thread/detail/config.hpp b/include/boost/thread/detail/config.hpp index 5df49eb3..274a23d0 100644 --- a/include/boost/thread/detail/config.hpp +++ b/include/boost/thread/detail/config.hpp @@ -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 diff --git a/include/boost/thread/detail/thread.hpp b/include/boost/thread/detail/thread.hpp index 1436431d..607495b2 100644 --- a/include/boost/thread/detail/thread.hpp +++ b/include/boost/thread/detail/thread.hpp @@ -34,8 +34,10 @@ #include #include #include +#ifdef BOOST_THREAD_USES_CHRONO #include #include +#endif #include @@ -497,6 +499,7 @@ namespace boost #if defined(BOOST_THREAD_PLATFORM_WIN32) bool timed_join(const system_time& abs_time); +#ifdef BOOST_THREAD_USES_CHRONO template bool try_join_for(const chrono::duration& rel_time) { @@ -509,8 +512,11 @@ namespace boost typename Clock::time_point c_now = Clock::now(); return try_join_for(chrono::ceil(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 @@ namespace boost struct timespec const ts=detail::get_timespec(abs_time); return do_try_join_until(ts); } +#ifdef BOOST_THREAD_USES_CHRONO template bool try_join_for(const chrono::duration& rel_time) { @@ -548,6 +555,7 @@ namespace boost ts.tv_nsec = static_cast((d - s).count()); return do_try_join_until(ts); } +#endif private: bool do_try_join_until(struct timespec const &timeout); public: diff --git a/include/boost/thread/future.hpp b/include/boost/thread/future.hpp index b4aaac9e..bbc9b77e 100644 --- a/include/boost/thread/future.hpp +++ b/include/boost/thread/future.hpp @@ -31,7 +31,9 @@ #include #include #include +#ifdef BOOST_THREAD_USES_CHRONO #include +#endif #if BOOST_THREAD_VERSION==1 #define BOOST_THREAD_FUTURE unique_future @@ -290,6 +292,8 @@ namespace boost return true; } +#ifdef BOOST_THREAD_USES_CHRONO + template future_status wait_until(const chrono::time_point& abs_time) @@ -306,6 +310,7 @@ namespace boost } return future_status::ready; } +#endif void mark_exceptional_finish_internal(boost::exception_ptr const& e) { exception=e; @@ -939,6 +944,7 @@ namespace boost } return future_->timed_wait_until(abs_time); } +#ifdef BOOST_THREAD_USES_CHRONO template future_status wait_for(const chrono::duration& rel_time) const @@ -956,7 +962,7 @@ namespace boost } return future_->wait_until(abs_time); } - +#endif }; #ifdef BOOST_NO_RVALUE_REFERENCES @@ -1155,6 +1161,8 @@ namespace boost } return future_->timed_wait_until(abs_time); } +#ifdef BOOST_THREAD_USES_CHRONO + template future_status wait_for(const chrono::duration& rel_time) const @@ -1172,6 +1180,7 @@ namespace boost } return future_->wait_until(abs_time); } +#endif }; #ifdef BOOST_NO_RVALUE_REFERENCES diff --git a/include/boost/thread/locks.hpp b/include/boost/thread/locks.hpp index 08b29bf3..4c53bb06 100644 --- a/include/boost/thread/locks.hpp +++ b/include/boost/thread/locks.hpp @@ -12,8 +12,10 @@ #include #include #include +#ifdef BOOST_THREAD_USES_CHRONO #include #include +#endif #include @@ -339,6 +341,7 @@ namespace boost timed_lock(target_time); } +#ifdef BOOST_THREAD_USES_CHRONO template unique_lock(Mutex& mtx, const chrono::time_point& t) : m(&mtx), is_locked(mtx.try_lock_until(t)) @@ -349,7 +352,7 @@ namespace boost : 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 @@ namespace boost is_locked=m->timed_lock(absolute_time); return is_locked; } + +#ifdef BOOST_THREAD_USES_CHRONO + template bool try_lock_for(const chrono::duration& rel_time) { @@ -578,6 +584,8 @@ namespace boost is_locked=m->try_lock_until(abs_time); return is_locked; } +#endif + void unlock() { if(m==0) diff --git a/include/boost/thread/pthread/condition_variable.hpp b/include/boost/thread/pthread/condition_variable.hpp index d6cd3a56..0d32a934 100644 --- a/include/boost/thread/pthread/condition_variable.hpp +++ b/include/boost/thread/pthread/condition_variable.hpp @@ -10,6 +10,10 @@ #include #include #include +#ifdef BOOST_THREAD_USES_CHRONO +#include +#include +#endif #include @@ -202,6 +206,7 @@ namespace boost return timed_wait(m,get_system_time()+wait_duration,pred); } +#ifdef BOOST_THREAD_USES_CHRONO template cv_status wait_until( @@ -289,6 +294,7 @@ namespace boost ts.tv_nsec = static_cast((d - s).count()); do_timed_wait(lk, ts); } +#endif void notify_one() BOOST_NOEXCEPT { diff --git a/include/boost/thread/pthread/condition_variable_fwd.hpp b/include/boost/thread/pthread/condition_variable_fwd.hpp index c27f85b0..288bbe41 100644 --- a/include/boost/thread/pthread/condition_variable_fwd.hpp +++ b/include/boost/thread/pthread/condition_variable_fwd.hpp @@ -14,8 +14,10 @@ #include #include #include +#ifdef BOOST_THREAD_USES_CHRONO #include #include +#endif #include @@ -122,6 +124,8 @@ namespace boost return timed_wait(m,get_system_time()+wait_duration,pred); } +#ifdef BOOST_THREAD_USES_CHRONO + template cv_status wait_until( @@ -195,6 +199,7 @@ namespace boost } return true; } +#endif typedef pthread_cond_t* native_handle_type; native_handle_type native_handle() @@ -205,6 +210,7 @@ namespace boost void notify_one() BOOST_NOEXCEPT; void notify_all() BOOST_NOEXCEPT; +#ifdef BOOST_THREAD_USES_CHRONO inline void wait_until( unique_lock& lk, chrono::time_point tp) @@ -217,7 +223,7 @@ namespace boost ts.tv_nsec = static_cast((d - s).count()); do_timed_wait(lk, ts); } - +#endif //private: // used by boost::thread::try_join_until inline bool do_timed_wait( diff --git a/include/boost/thread/pthread/mutex.hpp b/include/boost/thread/pthread/mutex.hpp index d08f4197..5421090f 100644 --- a/include/boost/thread/pthread/mutex.hpp +++ b/include/boost/thread/pthread/mutex.hpp @@ -16,8 +16,10 @@ #include #include #include +#ifdef BOOST_THREAD_USES_CHRONO #include #include +#endif #ifdef _POSIX_TIMEOUTS #if _POSIX_TIMEOUTS >= 0 && _POSIX_C_SOURCE>=200112L @@ -250,6 +252,7 @@ namespace boost return do_try_lock_until(ts); } +#ifdef BOOST_THREAD_USES_CHRONO template bool try_lock_for(const chrono::duration& rel_time) { @@ -280,6 +283,7 @@ namespace boost ts.tv_nsec = static_cast((d - s).count()); return do_try_lock_until(ts); } +#endif typedef pthread_mutex_t* native_handle_type; native_handle_type native_handle() diff --git a/include/boost/thread/pthread/once.hpp b/include/boost/thread/pthread/once.hpp index b2707cee..cf902781 100644 --- a/include/boost/thread/pthread/once.hpp +++ b/include/boost/thread/pthread/once.hpp @@ -21,7 +21,7 @@ namespace boost { -#if BOOST_THREAD_VERSION==2 +#if BOOST_THREAD_VERSION==3 struct once_flag { @@ -42,7 +42,7 @@ namespace boost }; -#else // BOOST_THREAD_VERSION==2 +#else // BOOST_THREAD_VERSION==3 struct once_flag { @@ -52,7 +52,7 @@ namespace boost #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 { diff --git a/include/boost/thread/pthread/recursive_mutex.hpp b/include/boost/thread/pthread/recursive_mutex.hpp index cd6a132f..692f7f06 100644 --- a/include/boost/thread/pthread/recursive_mutex.hpp +++ b/include/boost/thread/pthread/recursive_mutex.hpp @@ -19,8 +19,10 @@ #include #include #include +#ifdef BOOST_THREAD_USES_CHRONO #include #include +#endif #ifdef _POSIX_TIMEOUTS #if _POSIX_TIMEOUTS >= 0 @@ -352,6 +354,7 @@ namespace boost return do_try_lock_until(ts); } +#ifdef BOOST_THREAD_USES_CHRONO template bool try_lock_for(const chrono::duration& rel_time) { @@ -382,6 +385,7 @@ namespace boost ts.tv_nsec = static_cast((d - s).count()); return do_try_lock_until(ts); } +#endif typedef pthread_mutex_t* native_handle_type; native_handle_type native_handle() diff --git a/include/boost/thread/pthread/thread_data.hpp b/include/boost/thread/pthread/thread_data.hpp index ba26b021..f17e5b47 100644 --- a/include/boost/thread/pthread/thread_data.hpp +++ b/include/boost/thread/pthread/thread_data.hpp @@ -16,7 +16,9 @@ #include #include #include - +#ifdef BOOST_THREAD_USES_CHRONO +#include +#endif #include namespace boost @@ -170,8 +172,9 @@ namespace boost 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 diff --git a/include/boost/thread/v2/thread.hpp b/include/boost/thread/v2/thread.hpp index 23562fe5..d686c5fe 100644 --- a/include/boost/thread/v2/thread.hpp +++ b/include/boost/thread/v2/thread.hpp @@ -7,7 +7,9 @@ #define BOOST_THREAD_V2_THREAD_HPP #include +#ifdef BOOST_THREAD_USES_CHRONO #include +#endif #include #include @@ -16,6 +18,7 @@ namespace boost namespace this_thread { +#ifdef BOOST_THREAD_USES_CHRONO template void sleep_for(const chrono::duration& d) @@ -44,6 +47,8 @@ namespace boost using namespace chrono; sleep_for(t - steady_clock::now()); } + +#endif } } diff --git a/include/boost/thread/win32/basic_recursive_mutex.hpp b/include/boost/thread/win32/basic_recursive_mutex.hpp index 606b3045..e2c6f59c 100644 --- a/include/boost/thread/win32/basic_recursive_mutex.hpp +++ b/include/boost/thread/win32/basic_recursive_mutex.hpp @@ -11,8 +11,10 @@ #include #include +#ifdef BOOST_THREAD_USES_CHRONO #include #include +#endif #include @@ -66,6 +68,7 @@ namespace boost return timed_lock(get_system_time()+timeout); } +#ifdef BOOST_THREAD_USES_CHRONO template bool try_lock_for(const chrono::duration& rel_time) { @@ -78,7 +81,7 @@ namespace boost 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) diff --git a/include/boost/thread/win32/basic_timed_mutex.hpp b/include/boost/thread/win32/basic_timed_mutex.hpp index 58be1b6e..52f3e803 100644 --- a/include/boost/thread/win32/basic_timed_mutex.hpp +++ b/include/boost/thread/win32/basic_timed_mutex.hpp @@ -15,9 +15,10 @@ #include #include #include +#ifdef BOOST_THREAD_USES_CHRONO #include #include - +#endif #include namespace boost diff --git a/include/boost/thread/win32/condition_variable.hpp b/include/boost/thread/win32/condition_variable.hpp index bc34949a..9165c19c 100644 --- a/include/boost/thread/win32/condition_variable.hpp +++ b/include/boost/thread/win32/condition_variable.hpp @@ -18,6 +18,10 @@ #include #include #include +#ifdef BOOST_THREAD_USES_CHRONO +#include +#include +#endif #include @@ -350,6 +354,8 @@ namespace boost return do_wait(m,wait_duration.total_milliseconds(),pred); } +#ifdef BOOST_THREAD_USES_CHRONO + template cv_status wait_until( @@ -398,6 +404,7 @@ namespace boost { return wait_until(lock, chrono::steady_clock::now() + d, pred); } +#endif }; class condition_variable_any: @@ -460,6 +467,7 @@ namespace boost { return do_wait(m,wait_duration.total_milliseconds(),pred); } +#ifdef BOOST_THREAD_USES_CHRONO template cv_status @@ -510,7 +518,7 @@ namespace boost { return wait_until(lock, chrono::steady_clock::now() + d, pred); } - +#endif }; } diff --git a/include/boost/thread/win32/thread_data.hpp b/include/boost/thread/win32/thread_data.hpp index 7fe3bf54..55d8523b 100644 --- a/include/boost/thread/win32/thread_data.hpp +++ b/include/boost/thread/win32/thread_data.hpp @@ -10,8 +10,9 @@ #include #include #include +#ifdef BOOST_THREAD_USES_CHRONO #include - +#endif #include namespace boost @@ -213,10 +214,12 @@ namespace boost { 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(ns).count()); } +#endif } } diff --git a/src/pthread/thread.cpp b/src/pthread/thread.cpp index 2474b927..1912b94a 100644 --- a/src/pthread/thread.cpp +++ b/src/pthread/thread.cpp @@ -422,6 +422,7 @@ namespace boost } } +#ifdef BOOST_THREAD_USES_CHRONO void sleep_for(const chrono::nanoseconds& ns) { @@ -446,6 +447,7 @@ namespace boost # endif } } +#endif void yield() BOOST_NOEXCEPT { @@ -460,7 +462,6 @@ namespace boost # endif } } - unsigned thread::hardware_concurrency() BOOST_NOEXCEPT { #if defined(PTW32_VERSION) || defined(__hpux) diff --git a/src/win32/thread.cpp b/src/win32/thread.cpp index 36cd4bc8..b27e0423 100644 --- a/src/win32/thread.cpp +++ b/src/win32/thread.cpp @@ -317,6 +317,7 @@ namespace boost 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 @@ namespace boost return true; } +#endif void thread::detach() { diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 987737ad..efadacdf 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -35,9 +35,21 @@ rule thread-run ( sources ) 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/static - : : : : $(name)_lib ] + : : : + : $(name)_lib ] + ; +} + + +rule thread-compile-fail-V2 ( sources : reqs * : name ) +{ + return + [ compile-fail $(sources) + : $(reqs) + : $(name) ] ; } @@ -105,8 +117,8 @@ rule thread-run2 ( sources : name ) #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 @@ rule thread-run2 ( sources : name ) [ 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 @@ rule thread-run2 ( sources : name ) 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 @@ rule thread-run2 ( sources : name ) [ 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 @@ rule thread-run2 ( sources : name ) [ 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 @@ rule thread-run2 ( sources : name ) #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 ]