tng 2002/12/02 11:16:38
Modified: c/src/xercesc/util/Platforms/IRIX IRIXPlatformUtils.cpp
Log:
[Bug 14723] Memory leak in atomicOpsMutex. Patch from Adam Zell.
Revision Changes Path
1.5 +12 -2
xml-xerces/c/src/xercesc/util/Platforms/IRIX/IRIXPlatformUtils.cpp
Index: IRIXPlatformUtils.cpp
===================================================================
RCS file:
/home/cvs/xml-xerces/c/src/xercesc/util/Platforms/IRIX/IRIXPlatformUtils.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- IRIXPlatformUtils.cpp 15 Nov 2002 21:05:45 -0000 1.4
+++ IRIXPlatformUtils.cpp 2 Dec 2002 19:16:38 -0000 1.5
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.5 2002/12/02 19:16:38 tng
+ * [Bug 14723] Memory leak in atomicOpsMutex. Patch from Adam Zell.
+ *
* Revision 1.4 2002/11/15 21:05:45 tng
* [Bug 14598] IRIX 6.5 / g++ 3.0.4 compilation bugs. Patch from Richard Balint
* .
@@ -608,11 +611,16 @@
arenaName = strdup ("/var/tmp/xerces-sharedmemXXXXXX");
arena = usinit (mktemp (arenaName));
- atomicOpsMutex.fHandle = XMLPlatformUtils::makeMutex();
+ if (atomicOpsMutex.fHandle == 0)
+ atomicOpsMutex.fHandle = XMLPlatformUtils::makeMutex();
}
void XMLPlatformUtils::platformTerm()
{
+ // delete the mutex we created
+ closeMutex(atomicOpsMutex.fHandle);
+ atomicOpsMutex.fHandle = 0;
+
usdetach (arena);
unlink (arenaName);
free (arenaName);
@@ -692,7 +700,8 @@
// Normally, mutexes are created on first use, but there is a
// circular dependency between compareAndExchange() and
// mutex creation that must be broken.
- atomicOpsMutex.fHandle = XMLPlatformUtils::makeMutex();
+ if (atomicOpsMutex.fHandle == 0)
+ atomicOpsMutex.fHandle = XMLPlatformUtils::makeMutex();
}
void XMLPlatformUtils::platformTerm()
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]