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 wh...@apache.org on 2005/05/13 18:06:59 UTC
cvs commit: ws-axis/c/src/xml/xerces ParserLoader.cpp
whitlock 2005/05/13 09:06:59
Modified: c/build buildTools.xml
c/src/common AxisTrace.cpp AxisTrace.h
c/src/engine SOAPTransportFactory.cpp XMLParserFactory.cpp
XMLParserFactory.h
c/src/transport/axis3 ChannelFactory.cpp
HTTPTransportInstantiator.cpp
c/src/transport/axis3/HTTPChannel
HTTPChannelInstantiator.cpp
c/src/xml/xerces ParserLoader.cpp
Log:
AXISCPP-647 Fix multithreading problem in trace globals
Revision Changes Path
1.10 +1 -1 ws-axis/c/build/buildTools.xml
Index: buildTools.xml
===================================================================
RCS file: /home/cvs/ws-axis/c/build/buildTools.xml,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- buildTools.xml 16 Mar 2005 16:50:45 -0000 1.9
+++ buildTools.xml 13 May 2005 16:06:58 -0000 1.10
@@ -122,7 +122,7 @@
<compiler refid="AIXxlc"/>
<!-- Additional compiler flag for Client library on all platforms -->
<defineset>
- <define name="AXIS_CLIENT_LIB"/>
+ <define name="AXIS_CLIENTC_LIB"/>
<define name="ENABLE_AXISTRACE" if="trace"/>
</defineset>
<includepath path="${dir.include}${path.separator}${dir.obj}/include"/>
1.61 +8 -0 ws-axis/c/src/common/AxisTrace.cpp
Index: AxisTrace.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/common/AxisTrace.cpp,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- AxisTrace.cpp 23 Mar 2005 15:44:58 -0000 1.60
+++ AxisTrace.cpp 13 May 2005 16:06:58 -0000 1.61
@@ -42,6 +42,14 @@
enum AxisTraceState AxisTrace::m_bLoggingOn = STATE_UNINITIALISED;
AxisFile *AxisTrace::m_fileTrace = NULL;
+AxisTraceEntrypoints g_traceEntrypoints = {
+ AxisTrace::traceLineInternal,
+ AxisTrace::traceEntryInternal,
+ AxisTrace::traceExitInternal,
+ AxisTrace::traceCatchInternal,
+ AxisTrace::isTraceOn
+};
+
int AxisTrace::openFile ()
{
return initialise(g_pConfig->getAxisConfProperty(AXCONF_LOGPATH), STATE_ON);
1.35 +11 -18 ws-axis/c/src/common/AxisTrace.h
Index: AxisTrace.h
===================================================================
RCS file: /home/cvs/ws-axis/c/src/common/AxisTrace.h,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- AxisTrace.h 23 Mar 2005 15:44:58 -0000 1.34
+++ AxisTrace.h 13 May 2005 16:06:58 -0000 1.35
@@ -105,7 +105,7 @@
STATE_STARTUP
};
-class AxisTraceEntrypoints {
+class STORAGE_CLASS_INFO AxisTraceEntrypoints {
public:
void (*m_traceLine)(const char *data);
void (*m_traceEntry)(const char *className, const char *methodName, const void* that, int nParms, va_list vargs);
@@ -118,7 +118,10 @@
#ifdef AXISTRACE_LIBRARY
extern AxisTraceEntrypoints *g_traceEntrypoints;
+#elif !defined(AXIS_CLIENTC_LIB)
+ extern AxisTraceEntrypoints g_traceEntrypoints;
#endif
+
#ifdef AXISTRACE_LIBRARY_MAINENTRYPOINT
AxisTraceEntrypoints *g_traceEntrypoints = NULL;
#endif
@@ -269,28 +272,18 @@
* Returns the trace entrypoints to pass to a dynamically loaded library.
*/
#ifdef AXISTRACE_LIBRARY
- static void getTraceEntrypoints(AxisTraceEntrypoints& entrypoints) {
- entrypoints = *g_traceEntrypoints;
+ static AxisTraceEntrypoints* getTraceEntrypoints() {
+ return g_traceEntrypoints;
}
-#else
- static void getTraceEntrypoints(AxisTraceEntrypoints& entrypoints) {
- entrypoints.m_traceLine = traceLineInternal;
- entrypoints.m_traceEntry = traceEntryInternal;
- entrypoints.m_traceExit = traceExitInternal;
- entrypoints.m_traceCatch = traceCatchInternal;
- entrypoints.m_traceOn = isTraceOn();
+#elif !defined(AXIS_CLIENTC_LIB)
+ static AxisTraceEntrypoints* getTraceEntrypoints() {
+ return &g_traceEntrypoints;
}
#endif
#ifdef AXISTRACE_LIBRARY
- static void setTraceEntrypoints(AxisTraceEntrypoints& entrypoints) {
- g_traceEntrypoints = new AxisTraceEntrypoints;
- *g_traceEntrypoints = entrypoints;
- }
-
- static void deleteTraceEntrypoints() {
- if (NULL!=g_traceEntrypoints)
- delete g_traceEntrypoints;
+ static void setTraceEntrypoints(AxisTraceEntrypoints* entrypoints) {
+ g_traceEntrypoints = entrypoints;
}
#endif
1.27 +3 -5 ws-axis/c/src/engine/SOAPTransportFactory.cpp
Index: SOAPTransportFactory.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/engine/SOAPTransportFactory.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- SOAPTransportFactory.cpp 23 Mar 2005 15:44:58 -0000 1.26
+++ SOAPTransportFactory.cpp 13 May 2005 16:06:58 -0000 1.27
@@ -73,13 +73,11 @@
{
#ifdef ENABLE_AXISTRACE
// Load function to do lib level inits
- void (*initializeLibrary) (AxisTraceEntrypoints&);
- initializeLibrary = (void (*)(AxisTraceEntrypoints&))PLATFORM_GETPROCADDR(m_LibHandler, INIT_FUNCTION);
+ void (*initializeLibrary) (AxisTraceEntrypoints*);
+ initializeLibrary = (void (*)(AxisTraceEntrypoints*))PLATFORM_GETPROCADDR(m_LibHandler, INIT_FUNCTION);
- AxisTraceEntrypoints ep;
- AxisTrace::getTraceEntrypoints(ep);
if (initializeLibrary)
- (*initializeLibrary)(ep);
+ (*initializeLibrary)(AxisTrace::getTraceEntrypoints());
#endif
/*
// Load functions that does start and stop of event loop
1.24 +1 -3 ws-axis/c/src/engine/XMLParserFactory.cpp
Index: XMLParserFactory.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/engine/XMLParserFactory.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- XMLParserFactory.cpp 23 Mar 2005 15:44:58 -0000 1.23
+++ XMLParserFactory.cpp 13 May 2005 16:06:58 -0000 1.24
@@ -73,10 +73,8 @@
INIT_OBJECT2 initializeLibrary;
initializeLibrary = (INIT_OBJECT2) PLATFORM_GETPROCADDR(m_LibHandler, INIT_FUNCTION2);
- AxisTraceEntrypoints ep;
- AxisTrace::getTraceEntrypoints(ep);
if (initializeLibrary)
- (*initializeLibrary)(ep);
+ (*initializeLibrary)(AxisTrace::getTraceEntrypoints());
#endif
}
}
1.11 +1 -1 ws-axis/c/src/engine/XMLParserFactory.h
Index: XMLParserFactory.h
===================================================================
RCS file: /home/cvs/ws-axis/c/src/engine/XMLParserFactory.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XMLParserFactory.h 23 Mar 2005 15:44:58 -0000 1.10
+++ XMLParserFactory.h 13 May 2005 16:06:59 -0000 1.11
@@ -39,7 +39,7 @@
typedef int (* CREATE_OBJECT2) (XMLParser** inst);
typedef int (* DELETE_OBJECT2) (XMLParser* inst);
-typedef void (* INIT_OBJECT2) (AxisTraceEntrypoints& ep);
+typedef void (* INIT_OBJECT2) (AxisTraceEntrypoints* ep);
typedef void (* UNINIT_OBJECT2) ();
AXIS_CPP_NAMESPACE_START
1.15 +3 -6 ws-axis/c/src/transport/axis3/ChannelFactory.cpp
Index: ChannelFactory.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/transport/axis3/ChannelFactory.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- ChannelFactory.cpp 23 Mar 2005 09:24:32 -0000 1.14
+++ ChannelFactory.cpp 13 May 2005 16:06:59 -0000 1.15
@@ -93,15 +93,12 @@
#ifdef ENABLE_AXISTRACE
// Load function to do lib level inits
- void (*initializeLibrary) (AxisTraceEntrypoints&);
- initializeLibrary = (void (*)(AxisTraceEntrypoints&))PLATFORM_GETPROCADDR(sLibHandler, "initializeLibrary");
-
- AxisTraceEntrypoints ep;
- AxisTrace::getTraceEntrypoints( ep);
+ void (*initializeLibrary) (AxisTraceEntrypoints*);
+ initializeLibrary = (void (*)(AxisTraceEntrypoints*))PLATFORM_GETPROCADDR(sLibHandler, "initializeLibrary");
if( initializeLibrary)
{
- (*initializeLibrary) ( ep);
+ (*initializeLibrary) (AxisTrace::getTraceEntrypoints());
}
#endif
1.13 +1 -4 ws-axis/c/src/transport/axis3/HTTPTransportInstantiator.cpp
Index: HTTPTransportInstantiator.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/transport/axis3/HTTPTransportInstantiator.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- HTTPTransportInstantiator.cpp 23 Mar 2005 15:45:02 -0000 1.12
+++ HTTPTransportInstantiator.cpp 13 May 2005 16:06:59 -0000 1.13
@@ -59,7 +59,7 @@
return AXIS_FAIL;
}
- STORAGE_CLASS_INFO void initializeLibrary (AxisTraceEntrypoints& ep)
+ STORAGE_CLASS_INFO void initializeLibrary (AxisTraceEntrypoints* ep)
{
// Do init actions
#ifdef ENABLE_AXISTRACE
@@ -71,9 +71,6 @@
STORAGE_CLASS_INFO void uninitializeLibrary (void)
{
// Do uninit actions
-#ifdef ENABLE_AXISTRACE
- AxisTrace::deleteTraceEntrypoints();
-#endif
}
1.14 +1 -4 ws-axis/c/src/transport/axis3/HTTPChannel/HTTPChannelInstantiator.cpp
Index: HTTPChannelInstantiator.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/transport/axis3/HTTPChannel/HTTPChannelInstantiator.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- HTTPChannelInstantiator.cpp 23 Mar 2005 15:45:03 -0000 1.13
+++ HTTPChannelInstantiator.cpp 13 May 2005 16:06:59 -0000 1.14
@@ -69,7 +69,7 @@
/* initializeLibrary() Is a C interface.
*/
- STORAGE_CLASS_INFO void initializeLibrary (AxisTraceEntrypoints& ep)
+ STORAGE_CLASS_INFO void initializeLibrary (AxisTraceEntrypoints* ep)
{
// Do init actions
#ifdef ENABLE_AXISTRACE
@@ -82,9 +82,6 @@
STORAGE_CLASS_INFO void uninitializeLibrary (void)
{
// Do uninit actions
-#ifdef ENABLE_AXISTRACE
- AxisTrace::deleteTraceEntrypoints();
-#endif
}
STORAGE_CLASS_INFO const char * WhatAmI()
1.7 +1 -4 ws-axis/c/src/xml/xerces/ParserLoader.cpp
Index: ParserLoader.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/xml/xerces/ParserLoader.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ParserLoader.cpp 23 Mar 2005 15:45:05 -0000 1.6
+++ ParserLoader.cpp 13 May 2005 16:06:59 -0000 1.7
@@ -54,7 +54,7 @@
return AXIS_FAIL;
}
-STORAGE_CLASS_INFO void initializeLibrary (AxisTraceEntrypoints& ep)
+STORAGE_CLASS_INFO void initializeLibrary (AxisTraceEntrypoints* ep)
{
// Do init actions
#ifdef ENABLE_AXISTRACE
@@ -66,9 +66,6 @@
STORAGE_CLASS_INFO void uninitializeLibrary (void)
{
// Do uninit actions
-#ifdef ENABLE_AXISTRACE
- AxisTrace::deleteTraceEntrypoints();
-#endif
}
}