$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: anthony_at_[hidden]
Date: 2007-10-19 10:52:53
Author: anthonyw
Date: 2007-10-19 10:52:52 EDT (Fri, 19 Oct 2007)
New Revision: 40187
URL: http://svn.boost.org/trac/boost/changeset/40187
Log:
small changes to reduce warnings; extracted pthread_mutex_scoped_lock to its own file
Added:
   trunk/boost/thread/pthread/pthread_mutex_scoped_lock.hpp   (contents, props changed)
Text files modified: 
   trunk/boost/thread/pthread/mutex.hpp           |    28 +++++-----------------------            
   trunk/boost/thread/pthread/recursive_mutex.hpp |    28 +++++-----------------------            
   trunk/boost/thread/thread_time.hpp             |     4 ++--                                    
   trunk/boost/thread/win32/basic_timed_mutex.hpp |     2 +-                                      
   4 files changed, 13 insertions(+), 49 deletions(-)
Modified: trunk/boost/thread/pthread/mutex.hpp
==============================================================================
--- trunk/boost/thread/pthread/mutex.hpp	(original)
+++ trunk/boost/thread/pthread/mutex.hpp	2007-10-19 10:52:52 EDT (Fri, 19 Oct 2007)
@@ -14,6 +14,7 @@
 #include <unistd.h>
 #include <errno.h>
 #include "timespec.hpp"
+#include "pthread_mutex_scoped_lock.hpp"
 
 #ifdef _POSIX_TIMEOUTS
 #if _POSIX_TIMEOUTS >= 0
@@ -75,25 +76,6 @@
 #ifndef BOOST_PTHREAD_HAS_TIMEDLOCK
         pthread_cond_t cond;
         bool is_locked;
-
-        struct pthread_mutex_scoped_lock
-        {
-            pthread_mutex_t* m;
-            explicit pthread_mutex_scoped_lock(pthread_mutex_t* m_):
-                m(m_)
-            {
-                int const res=pthread_mutex_lock(m);
-                BOOST_ASSERT(!res);
-            }
-            ~pthread_mutex_scoped_lock()
-            {
-                int const res=pthread_mutex_unlock(m);
-                BOOST_ASSERT(!res);
-            }
-            
-        };
-        
-            
 #endif
     public:
         timed_mutex()
@@ -159,7 +141,7 @@
 #else
         void lock()
         {
-            pthread_mutex_scoped_lock const _(&m);
+            boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
             while(is_locked)
             {
                 int const cond_res=pthread_cond_wait(&cond,&m);
@@ -170,7 +152,7 @@
 
         void unlock()
         {
-            pthread_mutex_scoped_lock const _(&m);
+            boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
             is_locked=false;
             int const res=pthread_cond_signal(&cond);
             BOOST_ASSERT(!res);
@@ -178,7 +160,7 @@
         
         bool try_lock()
         {
-            pthread_mutex_scoped_lock const _(&m);
+            boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
             if(is_locked)
             {
                 return false;
@@ -190,7 +172,7 @@
         bool timed_lock(system_time const & abs_time)
         {
             struct timespec const timeout=detail::get_timespec(abs_time);
-            pthread_mutex_scoped_lock const _(&m);
+            boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
             while(is_locked)
             {
                 int const cond_res=pthread_cond_timedwait(&cond,&m,&timeout);
Added: trunk/boost/thread/pthread/pthread_mutex_scoped_lock.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/thread/pthread/pthread_mutex_scoped_lock.hpp	2007-10-19 10:52:52 EDT (Fri, 19 Oct 2007)
@@ -0,0 +1,30 @@
+#ifndef BOOST_PTHREAD_MUTEX_SCOPED_LOCK_HPP
+#define BOOST_PTHREAD_MUTEX_SCOPED_LOCK_HPP
+#include <pthread.h>
+#include <boost/assert.hpp>
+
+namespace boost
+{
+    namespace pthread
+    {
+        class pthread_mutex_scoped_lock
+        {
+            pthread_mutex_t* m;
+        public:
+            explicit pthread_mutex_scoped_lock(pthread_mutex_t* m_):
+                m(m_)
+            {
+                int const res=pthread_mutex_lock(m);
+                BOOST_ASSERT(!res);
+            }
+            ~pthread_mutex_scoped_lock()
+            {
+                int const res=pthread_mutex_unlock(m);
+                BOOST_ASSERT(!res);
+            }
+            
+        };
+    }
+}
+
+#endif
Modified: trunk/boost/thread/pthread/recursive_mutex.hpp
==============================================================================
--- trunk/boost/thread/pthread/recursive_mutex.hpp	(original)
+++ trunk/boost/thread/pthread/recursive_mutex.hpp	2007-10-19 10:52:52 EDT (Fri, 19 Oct 2007)
@@ -15,6 +15,7 @@
 #include <boost/date_time/posix_time/conversion.hpp>
 #include <errno.h>
 #include "timespec.hpp"
+#include "pthread_mutex_scoped_lock.hpp"
 
 #ifdef _POSIX_TIMEOUTS
 #if _POSIX_TIMEOUTS >= 0
@@ -93,25 +94,6 @@
         bool is_locked;
         pthread_t owner;
         unsigned count;
-
-        struct pthread_mutex_scoped_lock
-        {
-            pthread_mutex_t* m;
-            explicit pthread_mutex_scoped_lock(pthread_mutex_t* m_):
-                m(m_)
-            {
-                int const res=pthread_mutex_lock(m);
-                BOOST_ASSERT(!res);
-            }
-            ~pthread_mutex_scoped_lock()
-            {
-                int const res=pthread_mutex_unlock(m);
-                BOOST_ASSERT(!res);
-            }
-            
-        };
-        
-            
 #endif
     public:
         recursive_timed_mutex()
@@ -201,7 +183,7 @@
 #else
         void lock()
         {
-            pthread_mutex_scoped_lock const _(&m);
+            boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
             if(is_locked && owner==pthread_self())
             {
                 ++count;
@@ -220,7 +202,7 @@
 
         void unlock()
         {
-            pthread_mutex_scoped_lock const _(&m);
+            boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
             if(!--count)
             {
                 is_locked=false;
@@ -231,7 +213,7 @@
         
         bool try_lock()
         {
-            pthread_mutex_scoped_lock const _(&m);
+            boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
             if(is_locked && owner!=pthread_self())
             {
                 return false;
@@ -245,7 +227,7 @@
         bool timed_lock(system_time const & abs_time)
         {
             struct timespec const timeout=detail::get_timespec(abs_time);
-            pthread_mutex_scoped_lock const _(&m);
+            boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
             if(is_locked && owner==pthread_self())
             {
                 ++count;
Modified: trunk/boost/thread/thread_time.hpp
==============================================================================
--- trunk/boost/thread/thread_time.hpp	(original)
+++ trunk/boost/thread/thread_time.hpp	2007-10-19 10:52:52 EDT (Fri, 19 Oct 2007)
@@ -19,11 +19,11 @@
             return system_time(boost::posix_time::pos_infin);
         }
 
-        inline unsigned get_milliseconds_until(system_time const& target_time)
+        inline system_time::time_duration_type::tick_type get_milliseconds_until(system_time const& target_time)
         {
             if(target_time.is_pos_infinity())
             {
-                return ~0u;
+                return ~(system_time::time_duration_type::tick_type)0;
             }
             system_time const now=get_system_time();
             if(target_time<=now)
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	2007-10-19 10:52:52 EDT (Fri, 19 Oct 2007)
@@ -113,7 +113,7 @@
             void unlock()
             {
                 long const offset=lock_flag_value+1;
-                long old_count=BOOST_INTERLOCKED_EXCHANGE_ADD(&active_count,-offset);
+                long old_count=BOOST_INTERLOCKED_EXCHANGE_ADD(&active_count,(~offset)+1);
                 
                 if(old_count>offset)
                 {