You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Adrian Dick (JIRA)" <ax...@ws.apache.org> on 2006/01/17 14:27:44 UTC

[jira] Assigned: (AXISCPP-902) Synchronization used by engine\axis.cpp in start_initializing and done_initializing was wrong for Win32

     [ http://issues.apache.org/jira/browse/AXISCPP-902?page=all ]

Adrian Dick reassigned AXISCPP-902:
-----------------------------------

    Assign To: Adrian Dick

> Synchronization used by engine\axis.cpp in start_initializing and done_initializing was wrong for Win32
> -------------------------------------------------------------------------------------------------------
>
>          Key: AXISCPP-902
>          URL: http://issues.apache.org/jira/browse/AXISCPP-902
>      Project: Axis-C++
>         Type: Bug
>   Components: Client - Engine
>     Versions: 1.5 Final
>  Environment: Windows XP
>     Reporter: zhang
>     Assignee: Adrian Dick

>
> Synchronization used by engine\axis.cpp in start_initializing and done_initializing is implemented incorrectly for Windows platform. Please have a look at the parameters passed in to InterlockedCompareExchange. It incorrectly passed in addresses (i.e. pointers).
> The solution to it: replace the #ifdef WIN32 block by the following:
> #ifdef WIN32
> 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

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira