$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r62286 - in sandbox/stm/branches/vbe/boost/stm: . detail memory_managers non_tx/detail tx txw txw2
From: vicente.botet_at_[hidden]
Date: 2010-05-27 21:55:39
Author: viboes
Date: 2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
New Revision: 62286
URL: http://svn.boost.org/trac/boost/changeset/62286
Log:
Boost.STM/vbe: 
* Remove cache_fct.hpp file 
* Add missing static_tss.hpp file
* Cleanup
Added:
   sandbox/stm/branches/vbe/boost/stm/detail/static_tss.hpp   (contents, props changed)
Removed:
   sandbox/stm/branches/vbe/boost/stm/cache_fct.hpp
Text files modified: 
   sandbox/stm/branches/vbe/boost/stm/base_transaction.hpp               |     3 ---                                     
   sandbox/stm/branches/vbe/boost/stm/detail/jenkins_hash.hpp            |    22 +++++++++++-----------                  
   sandbox/stm/branches/vbe/boost/stm/detail/memory_pool.hpp             |     2 +-                                      
   sandbox/stm/branches/vbe/boost/stm/language_like.hpp                  |     6 +++---                                  
   sandbox/stm/branches/vbe/boost/stm/memory_managers/memory_manager.hpp |     1 -                                       
   sandbox/stm/branches/vbe/boost/stm/non_tx/detail/cache_map.hpp        |     2 +-                                      
   sandbox/stm/branches/vbe/boost/stm/transaction.hpp                    |    10 ++++------                              
   sandbox/stm/branches/vbe/boost/stm/transaction_object.hpp             |     1 -                                       
   sandbox/stm/branches/vbe/boost/stm/transaction_object_ptr.hpp         |     1 +                                       
   sandbox/stm/branches/vbe/boost/stm/tx/deep_transaction_object.hpp     |     2 +-                                      
   sandbox/stm/branches/vbe/boost/stm/tx/shallow_transaction_object.hpp  |     2 +-                                      
   sandbox/stm/branches/vbe/boost/stm/tx/trivial_transaction_object.hpp  |     2 +-                                      
   sandbox/stm/branches/vbe/boost/stm/txw/transactional_object.hpp       |     1 +                                       
   sandbox/stm/branches/vbe/boost/stm/txw2/transactional_object.hpp      |     1 +                                       
   14 files changed, 26 insertions(+), 30 deletions(-)
Modified: sandbox/stm/branches/vbe/boost/stm/base_transaction.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/base_transaction.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/base_transaction.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -16,7 +16,6 @@
 
 //-----------------------------------------------------------------------------
 #include <stdarg.h>
-//~ #include <pthread.h>
 #include <boost/thread.hpp>
 //-----------------------------------------------------------------------------
 #include <list>
@@ -27,10 +26,8 @@
 //-----------------------------------------------------------------------------
 #include <boost/stm/contention_managers/base_contention_manager.hpp>
 #include <boost/stm/base_transaction_object.hpp>
-#include <boost/stm/cache_fct.hpp>
 #include <boost/stm/datatypes.hpp>
 #include <boost/stm/exceptions.hpp>
-#include <boost/stm/transaction_object.hpp>
 //-----------------------------------------------------------------------------
 #include <boost/stm/detail/move.hpp>
 
Deleted: sandbox/stm/branches/vbe/boost/stm/cache_fct.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/cache_fct.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
+++ (empty file)
@@ -1,54 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Justin E. Gottchlich 2009.
-// (C) Copyright Vicente J. Botet Escriba 2009.
-// Distributed under the Boost
-// Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or
-// copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/stm for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef BOOST_STM_CACHE_FCT__HPP
-#define BOOST_STM_CACHE_FCT__HPP
-
-//-----------------------------------------------------------------------------
-#include <stdarg.h>
-//~ #include <pthread.h>
-#include <boost/thread.hpp>
-
-//-----------------------------------------------------------------------------
-#include <list>
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-#include <boost/stm/detail/config.hpp>
-//-----------------------------------------------------------------------------
-//#include <boost/stm/exceptions.hpp>
-//-----------------------------------------------------------------------------
-//#include <boost/stm/detail/memory_pool.hpp>
-//-----------------------------------------------------------------------------
-
-//-----------------------------------------------------------------------------
-namespace boost { namespace stm {
-
-//-----------------------------------------------------------------------------
-// forward declarations
-//-----------------------------------------------------------------------------
-
-class base_transaction_object;
-class transaction;
-
-void cache_release(base_transaction_object* ptr);
-
-
-template <class T> T* cache_allocate(transaction& t);
-template <class T> void cache_deallocate(T* ptr);
-
-
-} // namespace core
-}
-#endif // BOOST_STM_CACHE_FCT__HPP
-
-
Modified: sandbox/stm/branches/vbe/boost/stm/detail/jenkins_hash.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/detail/jenkins_hash.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/detail/jenkins_hash.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -16,7 +16,7 @@
 lookup3.c, by Bob Jenkins, May 2006, Public Domain.
 
 These are functions for producing 32-bit hashes for hash table lookup.
-hashword(), hashlittle(), hashlittle2(), hashbig(), mix(), and final()
+hashword(), hashlittle(), hashlittle2(), hashbig(), mix(), and JENKINS_HASH_final()
 are externally useful functions.  Routines to test the hash are included
 if SELF_TEST is defined.  You can use this free for any purpose.  It's in
 the public domain.  It has no warranty.
@@ -34,7 +34,7 @@
   a += i4; b += i5; c += i6;
   mix(a,b,c);
   a += i7;
-  final(a,b,c);
+  JENKINS_HASH_final(a,b,c);
 then use c as the hash value.  If you have a variable length array of
 4-byte integers to hash, use hashword().  If you have a byte array (like
 a character string), use hashlittle().  If you have several byte arrays, or
@@ -47,8 +47,8 @@
 -------------------------------------------------------------------------------
 */
 
-#ifndef BOOST_STM_JENKINS_HAS__HPP
-#define BOOST_STM_JENKINS_HAS__HPP
+#ifndef BOOST_STM_JENKINS_HASH__HPP
+#define BOOST_STM_JENKINS_HASH__HPP
 
 #define SELF_TEST 1
 
@@ -148,7 +148,7 @@
 
 /*
 -------------------------------------------------------------------------------
-final -- final mixing of 3 32-bit values (a,b,c) into c
+JENKINS_HASH_final -- JENKINS_HASH_final mixing of 3 32-bit values (a,b,c) into c
 
 Pairs of (a,b,c) values differing in only a few bits will usually
 produce values of c that look totally different.  This was tested for
@@ -171,7 +171,7 @@
  11  8 15 26 3 22 24
 -------------------------------------------------------------------------------
 */
-#define final(a,b,c) \
+#define JENKINS_HASH_final(a,b,c) \
 { \
   c ^= b; c -= rot(b,14); \
   a ^= c; a -= rot(c,11); \
@@ -222,7 +222,7 @@
   case 3 : c+=k[2];
   case 2 : b+=k[1];
   case 1 : a+=k[0];
-    final(a,b,c);
+    JENKINS_HASH_final(a,b,c);
   case 0:     /* case 0: nothing left to add */
     break;
   }
@@ -268,7 +268,7 @@
   case 3 : c+=k[2];
   case 2 : b+=k[1];
   case 1 : a+=k[0];
-    final(a,b,c);
+    JENKINS_HASH_final(a,b,c);
   case 0:     /* case 0: nothing left to add */
     break;
   }
@@ -469,7 +469,7 @@
     }
   }
 
-  final(a,b,c);
+  JENKINS_HASH_final(a,b,c);
   return c;
 }
 
@@ -654,7 +654,7 @@
     }
   }
 
-  final(a,b,c);
+  JENKINS_HASH_final(a,b,c);
   *pc=c; *pb=b;
 }
 
@@ -784,7 +784,7 @@
     }
   }
 
-  final(a,b,c);
+  JENKINS_HASH_final(a,b,c);
   return c;
 }
 
Modified: sandbox/stm/branches/vbe/boost/stm/detail/memory_pool.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/detail/memory_pool.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/detail/memory_pool.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -25,7 +25,7 @@
 
 #include <boost/stm/detail/vector_map.hpp>
 
-#ifdef WIN32
+#if defined(WIN32)
 #pragma warning( disable : 4786 )
 #endif
 
Added: sandbox/stm/branches/vbe/boost/stm/detail/static_tss.hpp
==============================================================================
--- (empty file)
+++ sandbox/stm/branches/vbe/boost/stm/detail/static_tss.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -0,0 +1,79 @@
+//          Copyright Stefan Strasser 2010.
+// Distributed under the Boost Software License, Version 1.0.
+//    (See accompanying file LICENSE_1_0.txt or copy at
+//          http://www.boost.org/LICENSE_1_0.txt)
+
+
+#ifndef BOOST_STM_DETAIL_STATIC_TSS_HPP
+#define BOOST_STM_DETAIL_STATIC_TSS_HPP
+
+#include <boost/noncopyable.hpp>
+#include <boost/thread/tss.hpp>
+
+namespace boost {
+namespace stm {
+namespace detail {
+
+template<class T,class Tag,bool Threads=true>
+class static_thread_specific_ptr;
+
+
+template<class T,class Tag>
+class static_thread_specific_ptr<T,Tag,true> : noncopyable{
+private:
+	static_thread_specific_ptr();
+public:
+
+#if ((__GNUC__== 3) && (__GNUC_MINOR__ > 4) || __GNUC__>= 4)
+	static void reset(T *p=0){ ptr=p; }
+	static T *get(){ return ptr; }
+private:
+	static __thread T *ptr;
+};
+
+template<class T,class Tag>
+__thread T *static_thread_specific_ptr<T,Tag,true>::ptr(0);
+
+#elif defined(BOOST_MSVC)
+	static void reset(T *p=0){ ptr=p; }
+	static T *get(){ return ptr; }
+private:
+	static __declspec(thread) T *ptr;
+};
+
+template<class T,class Tag>
+__declspec(thread) T *static_thread_specific_ptr<T,Tag,true>::ptr(0);
+
+
+#else
+	static void reset(T *p=0){ ptr.reset(p); }
+	static T *get(){ return ptr.get(); }
+private:
+	static thread_specific_ptr<T> ptr;
+};
+
+template<class T,class Tag>
+thread_specific_ptr<T> static_thread_specific_ptr<T,Tag,true>::ptr(0); //null deleter
+
+#endif
+
+template<class T,class Tag>
+class static_thread_specific_ptr<T,Tag,false> : noncopyable{
+private:
+	static_thread_specific_ptr();
+public:
+	static void reset(T *p=0){ ptr=p; }
+	static T *get(){ return ptr; }
+private:
+	static T *ptr;
+};
+
+template<class T,class Tag>
+T *static_thread_specific_ptr<T,Tag,false>::ptr(0);
+
+}
+}
+}
+
+
+#endif
Modified: sandbox/stm/branches/vbe/boost/stm/language_like.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/language_like.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/language_like.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -65,7 +65,7 @@
     }
 };
 
-bool no_opt_false() {return false;}
+inline bool no_opt_false() {return false;}
 
 template <typename TX, typename T> T commit_and_return(TX &t, T const& var) {
     T tmp(var);
@@ -78,11 +78,11 @@
     t.commit(); return true;
 }
 
-int get_int(const char* s) {
+inline int get_int(const char* s) {
     return 1+strlen(s);
 }
 
-void commit(std::nothrow_t, transaction&t)
+inline void commit(std::nothrow_t, transaction&t)
 {
     try { t.commit(); }
     catch (...) {}
Modified: sandbox/stm/branches/vbe/boost/stm/memory_managers/memory_manager.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/memory_managers/memory_manager.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/memory_managers/memory_manager.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -26,7 +26,6 @@
 #include <boost/stm/detail/config.hpp>
 //-----------------------------------------------------------------------------
 #include <boost/stm/base_transaction_object.hpp>
-#include <boost/stm/cache_fct.hpp>
 #include <boost/stm/datatypes.hpp>
 #include <boost/stm/memory_managers/base_memory_manager.hpp>
 //-----------------------------------------------------------------------------
Modified: sandbox/stm/branches/vbe/boost/stm/non_tx/detail/cache_map.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/non_tx/detail/cache_map.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/non_tx/detail/cache_map.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -22,7 +22,7 @@
 #include <boost/stm/trace.hpp>
 //-----------------------------------------------------------------------------
 #include <boost/stm/base_transaction_object.hpp>
-#include <boost/stm/cache_fct.hpp>
+#include <boost/stm/tx_memory_manager.hpp>
 #include <boost/stm/memory_managers/memory_manager.hpp>
 //-----------------------------------------------------------------------------
 
Modified: sandbox/stm/branches/vbe/boost/stm/transaction.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/transaction.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/transaction.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -15,7 +15,6 @@
 #define BOOST_STM_TRANSACTION__HPP
 
 //-----------------------------------------------------------------------------
-#include <assert.h>
 //~ #include <pthread.h>
 #include <boost/thread.hpp>
 
@@ -231,7 +230,7 @@
     // thread specific data
     struct tss_context
     {
-        inline tss_context()
+        tss_context()
         : tx_()
         #ifndef BOOST_STM_USE_BOOST_MUTEX
         #if WIN32
@@ -249,7 +248,7 @@
             pthread_mutex_init(&mutex_, 0);
             #endif
         }
-        inline ~tss_context() {
+        ~tss_context() {
             #ifndef BOOST_STM_USE_BOOST_MUTEX
             pthread_mutex_destroy(&mutex_);
             #endif
@@ -1940,9 +1939,9 @@
 ////////////////////////////////////////
 #ifndef BOOST_STM_HAVE_SINGLE_TSS_CONTEXT_MAP
 ////////////////////////////////////////
-//public:
+public:
     BOOST_STM_ASSERT_VAR_DCL(tx_context &, context_);
-//private:
+private:
 #ifdef BOOST_STM_TX_CONTAINS_REFERENCES_TO_TSS_FIELDS
     //~ mutable WriteContainer * const write_list_ref_;
     BOOST_STM_ASSERT_VAR_DCL(WriteContainer * const, write_list_ref_);
@@ -2576,7 +2575,6 @@
 } // boost namespace
 
 
-#include <boost/stm/tx_memory_manager.hpp>
 #include <boost/stm/detail/transaction_impl.hpp>
 #include <boost/stm/detail/latm_general_impl.hpp>
 
Modified: sandbox/stm/branches/vbe/boost/stm/transaction_object.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/transaction_object.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/transaction_object.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -25,7 +25,6 @@
 #include <boost/stm/detail/config.hpp>
 //-----------------------------------------------------------------------------
 #include <boost/stm/base_transaction_object.hpp>
-#include <boost/stm/cache_fct.hpp>
 #include <boost/stm/datatypes.hpp>
 #include <boost/stm/memory_managers/memory_manager.hpp>
 #include <boost/stm/tx/deep_transaction_object.hpp>
Modified: sandbox/stm/branches/vbe/boost/stm/transaction_object_ptr.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/transaction_object_ptr.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/transaction_object_ptr.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -16,6 +16,7 @@
 
 
 #include <boost/stm/base_transaction.hpp>
+#include <boost/stm/transaction_object.hpp>
 
 namespace boost { namespace stm {
 
Modified: sandbox/stm/branches/vbe/boost/stm/tx/deep_transaction_object.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/tx/deep_transaction_object.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/tx/deep_transaction_object.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -26,7 +26,7 @@
 #include <boost/stm/detail/config.hpp>
 //-----------------------------------------------------------------------------
 #include <boost/stm/base_transaction_object.hpp>
-#include <boost/stm/cache_fct.hpp>
+#include <boost/stm/tx_memory_manager.hpp>
 #include <boost/stm/datatypes.hpp>
 #include <boost/stm/memory_managers/memory_manager.hpp>
 //-----------------------------------------------------------------------------
Modified: sandbox/stm/branches/vbe/boost/stm/tx/shallow_transaction_object.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/tx/shallow_transaction_object.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/tx/shallow_transaction_object.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -24,7 +24,7 @@
 #include <boost/stm/detail/config.hpp>
 //-----------------------------------------------------------------------------
 #include <boost/stm/base_transaction_object.hpp>
-#include <boost/stm/cache_fct.hpp>
+#include <boost/stm/tx_memory_manager.hpp>
 #include <boost/stm/datatypes.hpp>
 #include <boost/stm/memory_managers/memory_manager.hpp>
 #include <boost/mpl/bool.hpp>
Modified: sandbox/stm/branches/vbe/boost/stm/tx/trivial_transaction_object.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/tx/trivial_transaction_object.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/tx/trivial_transaction_object.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -25,7 +25,7 @@
 #include <boost/stm/detail/config.hpp>
 //-----------------------------------------------------------------------------
 #include <boost/stm/base_transaction_object.hpp>
-#include <boost/stm/cache_fct.hpp>
+#include <boost/stm/tx_memory_manager.hpp>
 #include <boost/stm/datatypes.hpp>
 #include <boost/stm/memory_managers/memory_manager.hpp>
 #include <boost/mpl/and.hpp>
Modified: sandbox/stm/branches/vbe/boost/stm/txw/transactional_object.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/txw/transactional_object.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/txw/transactional_object.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -16,6 +16,7 @@
 
 //-----------------------------------------------------------------------------
 #include <boost/stm/base_transaction.hpp>
+#include <boost/stm/tx_memory_manager.hpp>
 #include <boost/stm/memory_managers/memory_manager.hpp>
 //-----------------------------------------------------------------------------
 
Modified: sandbox/stm/branches/vbe/boost/stm/txw2/transactional_object.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/txw2/transactional_object.hpp	(original)
+++ sandbox/stm/branches/vbe/boost/stm/txw2/transactional_object.hpp	2010-05-27 21:55:38 EDT (Thu, 27 May 2010)
@@ -16,6 +16,7 @@
 
 //-----------------------------------------------------------------------------
 #include <boost/stm/base_transaction.hpp>
+#include <boost/stm/tx_memory_manager.hpp>
 #include <boost/stm/memory_managers/memory_manager.hpp>
 //-----------------------------------------------------------------------------