$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r86391 - in trunk/libs/sync: src test
From: andrey.semashev_at_[hidden]
Date: 2013-10-22 10:04:00
Author: andysem
Date: 2013-10-22 10:04:00 EDT (Tue, 22 Oct 2013)
New Revision: 86391
URL: http://svn.boost.org/trac/boost/changeset/86391
Log:
Fixed compilation on Windows.
Text files modified: 
   trunk/libs/sync/src/tss_manager.hpp     |     2 +-                                      
   trunk/libs/sync/src/tss_windows.cpp     |     4 ++--                                    
   trunk/libs/sync/src/tss_windows_dll.cpp |    12 ++++++------                            
   trunk/libs/sync/src/tss_windows_pe.cpp  |    20 ++++++++++----------                    
   trunk/libs/sync/test/Jamfile.v2         |     1 +                                       
   5 files changed, 20 insertions(+), 19 deletions(-)
Modified: trunk/libs/sync/src/tss_manager.hpp
==============================================================================
--- trunk/libs/sync/src/tss_manager.hpp	Tue Oct 22 09:31:21 2013	(r86390)
+++ trunk/libs/sync/src/tss_manager.hpp	2013-10-22 10:04:00 EDT (Tue, 22 Oct 2013)	(r86391)
@@ -150,7 +150,7 @@
         {
             std::vector< void* > storage;
             storage.swap(p->m_storage);
-            for (thread_specific_key key = 0, n = storage.size(); key < n; ++key)
+            for (thread_specific_key key = 0, n = static_cast< thread_specific_key >(storage.size()); key < n; ++key)
             {
                 void* const value = storage[key];
                 if (value)
Modified: trunk/libs/sync/src/tss_windows.cpp
==============================================================================
--- trunk/libs/sync/src/tss_windows.cpp	Tue Oct 22 09:31:21 2013	(r86390)
+++ trunk/libs/sync/src/tss_windows.cpp	2013-10-22 10:04:00 EDT (Tue, 22 Oct 2013)	(r86391)
@@ -127,12 +127,12 @@
 BOOST_SYNC_API void add_thread_exit_callback(at_thread_exit_callback callback, void* context)
 {
     init_tss_once();
-    tss_manager::thread_context* ctx = static_cast< tss_manager::thread_context* >(pthread_getspecific(tss_key));
+    tss_manager::thread_context* ctx = static_cast< tss_manager::thread_context* >(TlsGetValue(tss_key));
 
     if (!ctx)
     {
         ctx = tss_mgr->create_thread_context();
-        pthread_setspecific(tss_key, ctx);
+        TlsSetValue(tss_key, ctx);
     }
 
     ctx->add_at_exit_entry(callback, context);
Modified: trunk/libs/sync/src/tss_windows_dll.cpp
==============================================================================
--- trunk/libs/sync/src/tss_windows_dll.cpp	Tue Oct 22 09:31:21 2013	(r86390)
+++ trunk/libs/sync/src/tss_windows_dll.cpp	2013-10-22 10:04:00 EDT (Tue, 22 Oct 2013)	(r86391)
@@ -22,27 +22,27 @@
     {
     case DLL_PROCESS_ATTACH:
         {
-            boost::on_process_enter();
-            boost::on_thread_enter();
+            boost::sync::detail::windows::on_process_enter();
+            boost::sync::detail::windows::on_thread_enter();
             break;
         }
 
     case DLL_THREAD_ATTACH:
         {
-            boost::on_thread_enter();
+            boost::sync::detail::windows::on_thread_enter();
             break;
         }
 
     case DLL_THREAD_DETACH:
         {
-            boost::on_thread_exit();
+            boost::sync::detail::windows::on_thread_exit();
             break;
         }
 
     case DLL_PROCESS_DETACH:
         {
-            boost::on_thread_exit();
-            boost::on_process_exit();
+            boost::sync::detail::windows::on_thread_exit();
+            boost::sync::detail::windows::on_process_exit();
             break;
         }
     }
Modified: trunk/libs/sync/src/tss_windows_pe.cpp
==============================================================================
--- trunk/libs/sync/src/tss_windows_pe.cpp	Tue Oct 22 09:31:21 2013	(r86390)
+++ trunk/libs/sync/src/tss_windows_pe.cpp	2013-10-22 10:04:00 EDT (Tue, 22 Oct 2013)	(r86391)
@@ -44,7 +44,7 @@
     {
     case DLL_THREAD_DETACH:
         {
-            boost::on_thread_exit();
+            boost::sync::detail::windows::on_thread_exit();
             break;
         }
     }
@@ -61,9 +61,9 @@
 #else
 extern "C" {
 
-    void (* after_ctors )() __attribute__((section(".ctors")))     = boost::on_process_enter;
-    void (* before_dtors)() __attribute__((section(".dtors")))     = boost::on_thread_exit;
-    void (* after_dtors )() __attribute__((section(".dtors.zzz"))) = boost::on_process_exit;
+    void (* after_ctors )() __attribute__((section(".ctors")))     = boost::sync::detail::windows::on_process_enter;
+    void (* before_dtors)() __attribute__((section(".dtors")))     = boost::sync::detail::windows::on_thread_exit;
+    void (* after_dtors )() __attribute__((section(".dtors.zzz"))) = boost::sync::detail::windows::on_process_exit;
 
     ULONG __tls_index__ = 0;
     char __tls_end__ __attribute__((section(".tls$zzz"))) = 0;
@@ -253,18 +253,18 @@
     //for destructors of global objects, so that
     //shouldn't be a problem.
 
-    atexit(boost::on_thread_exit);
+    atexit(boost::sync::detail::windows::on_thread_exit);
 
     //Call Boost process entry callback here
 
-    boost::on_process_enter();
+    boost::sync::detail::windows::on_process_enter();
 
     return INIRETSUCCESS;
 }
 
 PVAPI on_process_term()
 {
-    boost::on_process_exit();
+    boost::sync::detail::windows::on_process_exit();
     return INIRETSUCCESS;
 }
 
@@ -273,7 +273,7 @@
     switch (dwReason)
     {
     case DLL_THREAD_DETACH:
-        boost::on_thread_exit();
+        boost::sync::detail::windows::on_thread_exit();
         break;
     }
 }
@@ -287,10 +287,10 @@
     switch (dwReason)
     {
     case DLL_THREAD_DETACH:
-        boost::on_thread_exit();
+        boost::sync::detail::windows::on_thread_exit();
         break;
     case DLL_PROCESS_DETACH:
-        boost::on_process_exit();
+        boost::sync::detail::windows::on_process_exit();
         break;
     }
 
Modified: trunk/libs/sync/test/Jamfile.v2
==============================================================================
--- trunk/libs/sync/test/Jamfile.v2	Tue Oct 22 09:31:21 2013	(r86390)
+++ trunk/libs/sync/test/Jamfile.v2	2013-10-22 10:04:00 EDT (Tue, 22 Oct 2013)	(r86391)
@@ -11,6 +11,7 @@
     : requirements
         <threading>multi
         <hardcode-dll-paths>true
+        <library>/boost/sync//boost_sync
         <library>/boost/system//boost_system
         <library>/boost/thread//boost_thread
         <library>/boost/date_time//boost_date_time