You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2006/01/17 14:27:09 UTC

svn commit: r369773 - /webservices/axis/trunk/c/src/engine/Axis.cpp

Author: dicka
Date: Tue Jan 17 05:27:00 2006
New Revision: 369773

URL: http://svn.apache.org/viewcvs?rev=369773&view=rev
Log:
Improve synchronization for Win32 as per AXISCPP-902

Modified:
    webservices/axis/trunk/c/src/engine/Axis.cpp

Modified: webservices/axis/trunk/c/src/engine/Axis.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/engine/Axis.cpp?rev=369773&r1=369772&r2=369773&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/engine/Axis.cpp (original)
+++ webservices/axis/trunk/c/src/engine/Axis.cpp Tue Jan 17 05:27:00 2006
@@ -308,17 +308,16 @@
 
 #ifdef WIN32
 
-static volatile long g_uModuleInitializing = 0; 
-static void start_initializing() 
-{ 
-    while (InterlockedIncrement((LONG*)&g_uModuleInitializing) != 1) { 
-        InterlockedDecrement((LONG*)&g_uModuleInitializing); 
-    } 
-} 
-static void done_initializing() 
-{ 
-    InterlockedDecrement((LONG*)&g_uModuleInitializing); 
-} 
+static CRITICAL_SECTION g_initializationCriticalSection;
+static BOOL g_bCSInitialized = (InitializeCriticalSection(&g_initializationCriticalSection), TRUE);
+static void start_initializing()
+{
+    EnterCriticalSection(&g_initializationCriticalSection);
+}
+static void done_initializing()
+{
+    LeaveCriticalSection(&g_initializationCriticalSection);
+}
 
 #else