From cd4c858048dc7db6f880a277536edd6a8b9bc44c Mon Sep 17 00:00:00 2001 From: "Vicente J. Botet Escriba" Date: Mon, 30 Apr 2012 16:04:22 +0000 Subject: [PATCH] Thread: Added some traces to catch spourious issue [SVN r78278] --- test/threads/thread/members/join_pass.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/threads/thread/members/join_pass.cpp b/test/threads/thread/members/join_pass.cpp index 9daa13f9..72977be0 100644 --- a/test/threads/thread/members/join_pass.cpp +++ b/test/threads/thread/members/join_pass.cpp @@ -17,6 +17,7 @@ // void join(); +#define BOOST_THREAD_VESRION 3 #include #include #include @@ -67,33 +68,52 @@ void resource_deadlock_would_occur_tester() { try { + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; boost::unique_lock lk(resource_deadlock_would_occur_mtx); + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; resource_deadlock_would_occur_th->join(); + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; BOOST_TEST(false); + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; } catch (boost::system::system_error& e) { + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; BOOST_TEST(e.code().value() == boost::system::errc::resource_deadlock_would_occur); } + catch (...) + { + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; + BOOST_TEST(false&&"exception thrown"); + } } int main() { { + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; boost::thread t0( (G())); BOOST_TEST(t0.joinable()); t0.join(); BOOST_TEST(!t0.joinable()); } { + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; boost::unique_lock lk(resource_deadlock_would_occur_mtx); + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; boost::thread t0( resource_deadlock_would_occur_tester ); + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; resource_deadlock_would_occur_th = &t0; + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; BOOST_TEST(t0.joinable()); + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; lk.unlock(); + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; t0.join(); + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; BOOST_TEST(!t0.joinable()); + std::cout << __FILE__ << ":" << __LINE__ <<" " << std::endl; } // {