$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r80544 - in trunk: boost/thread/detail boost/thread/pthread libs/thread/src/pthread libs/thread/test
From: vicente.botet_at_[hidden]
Date: 2012-09-16 14:50:18
Author: viboes
Date: 2012-09-16 14:50:17 EDT (Sun, 16 Sep 2012)
New Revision: 80544
URL: http://svn.boost.org/trac/boost/changeset/80544
Log:
Thread: (posix) Make use of BOOST_TRY family macros
Text files modified: 
   trunk/boost/thread/detail/config.hpp     |     5 +++++                                   
   trunk/boost/thread/pthread/once.hpp      |    23 ++++++++++-------------                 
   trunk/libs/thread/src/pthread/thread.cpp |    11 ++++-------                             
   trunk/libs/thread/test/test_4882.cpp     |    14 ++++++++------                          
   4 files changed, 27 insertions(+), 26 deletions(-)
Modified: trunk/boost/thread/detail/config.hpp
==============================================================================
--- trunk/boost/thread/detail/config.hpp	(original)
+++ trunk/boost/thread/detail/config.hpp	2012-09-16 14:50:17 EDT (Sun, 16 Sep 2012)
@@ -8,6 +8,11 @@
 #ifndef BOOST_THREAD_CONFIG_WEK01032003_HPP
 #define BOOST_THREAD_CONFIG_WEK01032003_HPP
 
+// Force SIG_ATOMIC_MAX to be defined
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS
+#endif
+
 #include <boost/config.hpp>
 #include <boost/detail/workaround.hpp>
 
Modified: trunk/boost/thread/pthread/once.hpp
==============================================================================
--- trunk/boost/thread/pthread/once.hpp	(original)
+++ trunk/boost/thread/pthread/once.hpp	2012-09-16 14:50:17 EDT (Sun, 16 Sep 2012)
@@ -12,17 +12,17 @@
 
 #include <boost/thread/detail/config.hpp>
 
-#include <pthread.h>
-#include <boost/assert.hpp>
 #include <boost/thread/pthread/pthread_mutex_scoped_lock.hpp>
-#include <boost/cstdint.hpp>
 #include <boost/thread/detail/delete.hpp>
-// Force SIG_ATOMIC_MAX tobe defined
-#define __STDC_LIMIT_MACROS
-#include <csignal>
+#include <boost/detail/no_exceptions_support.hpp>
 
+#include <boost/assert.hpp>
 #include <boost/config/abi_prefix.hpp>
 
+#include <boost/cstdint.hpp>
+#include <pthread.h>
+#include <csignal>
+
 namespace boost
 {
 
@@ -92,21 +92,18 @@
                 if(flag.epoch==uninitialized_flag)
                 {
                     flag.epoch=being_initialized;
-#ifndef BOOST_NO_EXCEPTIONS
-                    try // BOOST_NO_EXCEPTIONS protected
+                    BOOST_TRY
                     {
-#endif
                         pthread::pthread_mutex_scoped_unlock relocker(&detail::once_epoch_mutex);
                         f();
-#ifndef BOOST_NO_EXCEPTIONS
                     }
-                    catch(...)  // BOOST_NO_EXCEPTIONS protected
+                    BOOST_CATCH (...)
                     {
                         flag.epoch=uninitialized_flag;
                         BOOST_VERIFY(!pthread_cond_broadcast(&detail::once_epoch_cv));
-                        throw;  // BOOST_NO_EXCEPTIONS protected
+                        BOOST_RETHROW
                     }
-#endif
+                    BOOST_CATCH_END
                     flag.epoch=--detail::once_global_epoch;
                     BOOST_VERIFY(!pthread_cond_broadcast(&detail::once_epoch_cv));
                 }
Modified: trunk/libs/thread/src/pthread/thread.cpp
==============================================================================
--- trunk/libs/thread/src/pthread/thread.cpp	(original)
+++ trunk/libs/thread/src/pthread/thread.cpp	2012-09-16 14:50:17 EDT (Sun, 16 Sep 2012)
@@ -148,20 +148,17 @@
                 boost::detail::thread_data_ptr thread_info = static_cast<boost::detail::thread_data_base*>(param)->self;
                 thread_info->self.reset();
                 detail::set_current_thread_data(thread_info.get());
-#ifndef BOOST_NO_EXCEPTIONS
-                try // BOOST_NO_EXCEPTIONS protected
-#endif
+                BOOST_TRY
                 {
                     thread_info->run();
                 }
-#ifndef BOOST_NO_EXCEPTIONS
-                catch(thread_interrupted const&) // BOOST_NO_EXCEPTIONS protected
+                BOOST_CATCH (thread_interrupted const&)
                 {
                 }
-#endif
+                BOOST_CATCH_END
 // Removed as it stops the debugger identifying the cause of the exception
 // Unhandled exceptions still cause the application to terminate
-//                 catch(...) // BOOST_NO_EXCEPTIONS protected
+//                 BOOST_CATCH(...)
 //                 {
 //                     std::terminate();
 //                 }
Modified: trunk/libs/thread/test/test_4882.cpp
==============================================================================
--- trunk/libs/thread/test/test_4882.cpp	(original)
+++ trunk/libs/thread/test/test_4882.cpp	2012-09-16 14:50:17 EDT (Sun, 16 Sep 2012)
@@ -5,6 +5,7 @@
 
 #include <boost/thread/thread.hpp>
 #include <boost/thread/shared_mutex.hpp>
+#include <boost/detail/no_exceptions_support.hpp>
 
 #include <iostream>
 
@@ -13,9 +14,7 @@
 void thread()
 {
   std::cout << __FILE__ << ":" << __LINE__ << std::endl;
-#ifndef BOOST_NO_EXCEPTIONS
-  try
-#endif
+  BOOST_TRY
   {
     for (int i =0; i<10; ++i)
     {
@@ -30,12 +29,15 @@
       }
     }
   }
-#ifndef BOOST_NO_EXCEPTIONS
-  catch (boost::lock_error& le)
+  BOOST_CATCH (boost::lock_error& le)
   {
     std::cerr << "lock_error exception\n";
   }
-#endif
+  BOOST_CATCH (...)
+  {
+    std::cerr << " exception\n";
+  }
+  BOOST_CATCH_END
   std::cout << __FILE__ << ":" << __LINE__ << std::endl;
 }