$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r51850 - sandbox/synchro/boost/synchro/lockable
From: vicente.botet_at_[hidden]
Date: 2009-03-18 19:19:34
Author: viboes
Date: 2009-03-18 19:19:31 EDT (Wed, 18 Mar 2009)
New Revision: 51850
URL: http://svn.boost.org/trac/boost/changeset/51850
Log:
0.3.0 : Adding lock_until/for try_lock_until/for free functions + usage of Boost/Chrono
Text files modified: 
   sandbox/synchro/boost/synchro/lockable/lock.hpp              |     8 --------                                
   sandbox/synchro/boost/synchro/lockable/lock_for.hpp          |     8 ++++----                                
   sandbox/synchro/boost/synchro/lockable/lock_shared_for.hpp   |     6 +++---                                  
   sandbox/synchro/boost/synchro/lockable/lock_shared_until.hpp |     4 ++--                                    
   sandbox/synchro/boost/synchro/lockable/lock_until.hpp        |     4 ++--                                    
   sandbox/synchro/boost/synchro/lockable/lock_upgrade_for.hpp  |     6 +++---                                  
   6 files changed, 14 insertions(+), 22 deletions(-)
Modified: sandbox/synchro/boost/synchro/lockable/lock.hpp
==============================================================================
--- sandbox/synchro/boost/synchro/lockable/lock.hpp	(original)
+++ sandbox/synchro/boost/synchro/lockable/lock.hpp	2009-03-18 19:19:31 EDT (Wed, 18 Mar 2009)
@@ -13,9 +13,6 @@
 
 #include <boost/config/abi_prefix.hpp>
 
-//!\file
-//!Describes a generic free lock function that can be applied to any model of the Lockable concept
-
 namespace boost { namespace synchro { namespace lockable {
 
     namespace result_of {
@@ -34,11 +31,6 @@
         };
     }
 
-    //!Effects: The calling thread tries to obtain ownership of the lockable, and
-    //!   if another thread has ownership of the lockable, it waits until it can
-    //!   obtain the ownership. If a thread takes ownership of the lockable the
-    //!   lockable must be unlocked by the same thread.
-    //!Throws: boost::system_exception on error.
     template <typename Lockable>
     typename result_of::template lock<Lockable>::type 
     lock(Lockable& lockable) {
Modified: sandbox/synchro/boost/synchro/lockable/lock_for.hpp
==============================================================================
--- sandbox/synchro/boost/synchro/lockable/lock_for.hpp	(original)
+++ sandbox/synchro/boost/synchro/lockable/lock_for.hpp	2009-03-18 19:19:31 EDT (Wed, 18 Mar 2009)
@@ -26,17 +26,17 @@
     namespace partial_specialization_workaround {
         template <typename Lockable, class Rep, class Period >
         struct lock_for {
-            static void 
+            static typename result_of::template lock_for<Lockable>::type 
             apply( Lockable& lockable, const chrono::duration<Rep, Period>& rel_time ) {
-                lockable.lock_for(rel_time);
+                return lockable.lock_for(rel_time);
             }
         };
     }
 
     template <typename Lockable, class Rep, class Period >
-    void 
+    typename result_of::template lock_for<Lockable>::type 
     lock_for(Lockable& lockable, const chrono::duration<Rep, Period>& abs_time) {
-        partial_specialization_workaround::lock_for<Lockable,Rep,Period>::apply(lockable, abs_time);
+        return partial_specialization_workaround::lock_for<Lockable,Rep,Period>::apply(lockable, abs_time);
     }
 
 
Modified: sandbox/synchro/boost/synchro/lockable/lock_shared_for.hpp
==============================================================================
--- sandbox/synchro/boost/synchro/lockable/lock_shared_for.hpp	(original)
+++ sandbox/synchro/boost/synchro/lockable/lock_shared_for.hpp	2009-03-18 19:19:31 EDT (Wed, 18 Mar 2009)
@@ -17,7 +17,7 @@
 namespace boost { namespace synchro { namespace lockable {
 
     namespace result_of {
-        template <typename Lockable>
+        template <typename Lockable, class Rep, class Period >
         struct lock_shared_for {
             typedef void type;
         };
@@ -26,7 +26,7 @@
     namespace partial_specialization_workaround {
         template <typename Lockable, class Rep, class Period >
         struct lock_shared_for {
-            static void 
+            static typename result_of::template lock_shared_for<Lockable,Rep,Period>::type 
             apply( Lockable& lockable, const chrono::duration<Rep, Period>& rel_time ) {
                 return lockable.lock_shared_for(rel_time);
             }
@@ -34,7 +34,7 @@
     }
 
     template <typename Lockable, class Rep, class Period >
-    void 
+    typename result_of::template lock_shared_for<Lockable,Rep,Period>::type 
     lock_shared_for(Lockable& lockable, const chrono::duration<Rep, Period>& abs_time) {
         return partial_specialization_workaround::lock_shared_for<Lockable,Rep,Period>::apply(lockable, abs_time);
     }
Modified: sandbox/synchro/boost/synchro/lockable/lock_shared_until.hpp
==============================================================================
--- sandbox/synchro/boost/synchro/lockable/lock_shared_until.hpp	(original)
+++ sandbox/synchro/boost/synchro/lockable/lock_shared_until.hpp	2009-03-18 19:19:31 EDT (Wed, 18 Mar 2009)
@@ -26,7 +26,7 @@
     namespace partial_specialization_workaround {
         template <typename Lockable, class Clock, class Duration >
         struct lock_shared_until {
-            static void 
+            static typename result_of::template lock_shared_until<Lockable,Clock,Duration>::type 
             apply( Lockable& lockable, const chrono::time_point<Clock, Duration>& abs_time ) {
                 return lockable.lock_shared_until(abs_time);
             }
@@ -34,7 +34,7 @@
     }
 
     template <typename Lockable, class Clock, class Duration >
-    void 
+    typename result_of::template lock_shared_until<Lockable,Clock,Duration>::type 
     lock_shared_until(Lockable& lockable, const chrono::time_point<Clock, Duration>& abs_time) {
         return partial_specialization_workaround::lock_shared_until<Lockable,Clock,Duration>::apply(lockable, abs_time);
     }
Modified: sandbox/synchro/boost/synchro/lockable/lock_until.hpp
==============================================================================
--- sandbox/synchro/boost/synchro/lockable/lock_until.hpp	(original)
+++ sandbox/synchro/boost/synchro/lockable/lock_until.hpp	2009-03-18 19:19:31 EDT (Wed, 18 Mar 2009)
@@ -26,7 +26,7 @@
     namespace partial_specialization_workaround {
         template <typename Lockable, class Clock, class Duration >
         struct lock_until {
-            static void 
+            static typename result_of::template lock_until<Lockable,Clock,Duration>::type 
             apply( Lockable& lockable, const chrono::time_point<Clock, Duration>& abs_time ) {
                 return lockable.lock_until(abs_time);
             }
@@ -34,7 +34,7 @@
     }
 
     template <typename Lockable, class Clock, class Duration >
-    void 
+    typename result_of::template lock_until<Lockable,Clock,Duration>::type 
     lock_until(Lockable& lockable, const chrono::time_point<Clock, Duration>& abs_time) {
         return partial_specialization_workaround::lock_until<Lockable,Clock,Duration>::apply(lockable, abs_time);
     }
Modified: sandbox/synchro/boost/synchro/lockable/lock_upgrade_for.hpp
==============================================================================
--- sandbox/synchro/boost/synchro/lockable/lock_upgrade_for.hpp	(original)
+++ sandbox/synchro/boost/synchro/lockable/lock_upgrade_for.hpp	2009-03-18 19:19:31 EDT (Wed, 18 Mar 2009)
@@ -17,7 +17,7 @@
 namespace boost { namespace synchro { namespace lockable {
 
     namespace result_of {
-        template <typename Lockable>
+        template <typename Lockable, class Rep, class Period >
         struct lock_upgrade_for {
             typedef void type;
         };
@@ -26,7 +26,7 @@
     namespace partial_specialization_workaround {
         template <typename Lockable, class Rep, class Period >
         struct lock_upgrade_for {
-            static void 
+            static typename result_of::template lock_upgrade_for<Lockable,Rep, Period>::type 
             apply( Lockable& lockable, const chrono::duration<Rep, Period>& rel_time ) {
                 return lockable.lock_upgrade_for(rel_time);
             }
@@ -34,7 +34,7 @@
     }
 
     template <typename Lockable, class Rep, class Period >
-    void 
+    typename result_of::template lock_upgrade_for<Lockable,Rep, Period>::type 
     lock_upgrade_for(Lockable& lockable, const chrono::duration<Rep, Period>& abs_time) {
         return partial_specialization_workaround::lock_upgrade_for<Lockable,Rep,Period>::apply(lockable, abs_time);
     }