You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by tn...@apache.org on 2002/09/18 17:22:48 UTC
cvs commit: xml-xerces/c/src/xercesc/util/Platforms/OS390 OS390PlatformUtils.cpp
tng 2002/09/18 08:22:48
Modified: c/src/xercesc/util/Platforms/OS390 OS390PlatformUtils.cpp
Log:
OS390 Performance Enhancement: instead of calling isPosixOn everytime, store the information
in a static flag during initialization. Patch from Stephen Dulin.
Revision Changes Path
1.4 +41 -5 xml-xerces/c/src/xercesc/util/Platforms/OS390/OS390PlatformUtils.cpp
Index: OS390PlatformUtils.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/Platforms/OS390/OS390PlatformUtils.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- OS390PlatformUtils.cpp 8 Aug 2002 16:40:35 -0000 1.3
+++ OS390PlatformUtils.cpp 18 Sep 2002 15:22:48 -0000 1.4
@@ -106,6 +106,10 @@
#include <xercesc/util/NetAccessors/Socket/SocketNetAccessor.hpp>
#endif
+// ---------------------------------------------------------------------------
+// Static data
+// ---------------------------------------------------------------------------
+static bool isPosixEnabled = false;
// ---------------------------------------------------------------------------
// XMLPlatformUtils: Platform init method
@@ -116,8 +120,40 @@
// The next conditional section is to turn on support for allowing
// the NEL character as a valid whitespace character. Once this is
// enabled the parser is non-compliant with the XML standard.
+// Assumption: Once this is enabled, it cannot be reset and
+// should remain the same during the same process.
#if defined XML_ALLOW_NELWS
+ try
+ {
XMLPlatformUtils::recognizeNEL(true);
+ }
+ catch (...)
+ {
+ panic(XMLPlatformUtils::Panic_SystemInit);
+ }
+#endif
+
+// The next section checks if Posix is enabled on the OS/390 system.
+// It stores the result in the static isPosixEnabled flag.
+// The __isPosixOn() native routine uses too much
+// overhead to call repeatedly at runtime so this will be the only
+// remaining call of it.
+// Assumption: Once this is enabled, it cannot be reset and
+// should remain the same during the same process.
+
+#ifdef OS390BATCH
+ try
+ {
+ if (__isPosixOn())
+ {
+ if (!isPosixEnabled)
+ isPosixEnabled = true;
+ }
+ }
+ catch (...)
+ {
+ panic(XMLPlatformUtils::Panic_SystemInit);
+ }
#endif
}
@@ -811,7 +847,7 @@
if (mtxHandle == NULL)
return;
#ifdef OS390BATCH
- if (__isPosixOn()) {
+ if (isPosixEnabled) {
#endif
if (pthread_mutex_destroy( (pthread_mutex_t*)mtxHandle))
{
@@ -832,7 +868,7 @@
if (mtxHandle == NULL)
return;
#ifdef OS390BATCH
- if (__isPosixOn()) {
+ if (isPosixEnabled) {
#endif
if (pthread_mutex_lock( (pthread_mutex_t*)mtxHandle))
{
@@ -855,7 +891,7 @@
void* XMLPlatformUtils::makeMutex()
{
#ifdef OS390BATCH
- if (__isPosixOn()) {
+ if (isPosixEnabled) {
#endif
pthread_mutex_t* mutex = new pthread_mutex_t;
if (mutex == NULL)
@@ -890,7 +926,7 @@
if (mtxHandle == NULL)
return;
#ifdef OS390BATCH
- if (__isPosixOn()) {
+ if (isPosixEnabled) {
#endif
if (pthread_mutex_unlock( (pthread_mutex_t*)mtxHandle))
{
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org