2 changed files with 161 additions and 22 deletions
@ -0,0 +1,109 @@ |
|||||||
|
--- src/xercesc/runConfigure.dist Fri Dec 27 10:26:26 2002
|
||||||
|
+++ src/xercesc/runConfigure Fri Dec 27 10:56:18 2002
|
||||||
|
@@ -189,6 +189,7 @@
|
||||||
|
linkeroptions="$linkeroptions $2"; shift 2;;
|
||||||
|
|
||||||
|
-P)
|
||||||
|
+ prefix=$2
|
||||||
|
configureoptions="$configureoptions --prefix=$2"; shift 2;;
|
||||||
|
|
||||||
|
-C)
|
||||||
|
@@ -301,8 +302,16 @@
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
elif test $platform = "freebsd"; then
|
||||||
|
- threadingLibs="-pthread -lc_r"
|
||||||
|
- threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"
|
||||||
|
+ case $thread in
|
||||||
|
+ pth)
|
||||||
|
+ threadingLibs="-L$prefix/lib -lpth -lc_r"
|
||||||
|
+ threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS -DUSE_PTH -I$prefix/include"
|
||||||
|
+ ;;
|
||||||
|
+ *)
|
||||||
|
+ threadingLibs="-pthread -lc_r"
|
||||||
|
+ threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"
|
||||||
|
+ ;;
|
||||||
|
+ esac
|
||||||
|
elif test $platform = "aix"; then
|
||||||
|
aix_version=`./config.guess`;
|
||||||
|
echo Found host system to be $aix_version
|
||||||
|
--- src/xercesc/util/Platforms/FreeBSD/FreeBSDPlatformUtils.cpp.dist Tue Aug 27 09:24:36 2002
|
||||||
|
+++ src/xercesc/util/Platforms/FreeBSD/FreeBSDPlatformUtils.cpp Fri Dec 27 10:35:29 2002
|
||||||
|
@@ -86,8 +86,12 @@
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if !defined(APP_NO_THREADS)
|
||||||
|
+#ifdef USE_PTH
|
||||||
|
+#include <pth.h>
|
||||||
|
+#else
|
||||||
|
#include <pthread.h>
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#ifndef _GNU_SOURCE
|
||||||
|
#error _GNU_SOURCE is not defined in your compile settings
|
||||||
|
@@ -584,6 +588,14 @@
|
||||||
|
|
||||||
|
void* XMLPlatformUtils::makeMutex()
|
||||||
|
{
|
||||||
|
+#ifdef USE_PTH
|
||||||
|
+ pth_mutex_t* mutex = new pth_mutex_t;
|
||||||
|
+ if (pth_mutex_init(mutex))
|
||||||
|
+ {
|
||||||
|
+ ThrowXML(XMLPlatformUtilsException,
|
||||||
|
+ XMLExcepts::Mutex_CouldNotCreate);
|
||||||
|
+ }
|
||||||
|
+#else
|
||||||
|
pthread_mutex_t* mutex = new pthread_mutex_t;
|
||||||
|
pthread_mutexattr_t* attr = new pthread_mutexattr_t;
|
||||||
|
pthread_mutexattr_init(attr);
|
||||||
|
@@ -595,20 +607,24 @@
|
||||||
|
}
|
||||||
|
pthread_mutexattr_destroy(attr);
|
||||||
|
delete attr;
|
||||||
|
+#endif
|
||||||
|
return (void*)(mutex);
|
||||||
|
-
|
||||||
|
}
|
||||||
|
|
||||||
|
void XMLPlatformUtils::closeMutex(void* const mtxHandle)
|
||||||
|
{
|
||||||
|
if (mtxHandle != NULL)
|
||||||
|
{
|
||||||
|
+#ifdef USE_PTH
|
||||||
|
+ delete (pth_mutex_t*)mtxHandle;
|
||||||
|
+#else
|
||||||
|
if (pthread_mutex_destroy((pthread_mutex_t*) mtxHandle))
|
||||||
|
{
|
||||||
|
ThrowXML(XMLPlatformUtilsException,
|
||||||
|
XMLExcepts::Mutex_CouldNotDestroy);
|
||||||
|
}
|
||||||
|
delete (pthread_mutex_t*)mtxHandle;
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -617,7 +633,11 @@
|
||||||
|
{
|
||||||
|
if (mtxHandle != NULL)
|
||||||
|
{
|
||||||
|
+#ifdef USE_PTH
|
||||||
|
+ if (pth_mutex_acquire((pth_mutex_t*) mtxHandle, FALSE, NULL))
|
||||||
|
+#else
|
||||||
|
if (pthread_mutex_lock((pthread_mutex_t*) mtxHandle))
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
ThrowXML(XMLPlatformUtilsException,
|
||||||
|
XMLExcepts::Mutex_CouldNotLock);
|
||||||
|
@@ -630,7 +650,11 @@
|
||||||
|
{
|
||||||
|
if (mtxHandle != NULL)
|
||||||
|
{
|
||||||
|
+#ifdef USE_PTH
|
||||||
|
+ if (pth_mutex_release((pth_mutex_t*) mtxHandle))
|
||||||
|
+#else
|
||||||
|
if (pthread_mutex_unlock((pthread_mutex_t*) mtxHandle))
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
ThrowXML(XMLPlatformUtilsException,
|
||||||
|
XMLExcepts::Mutex_CouldNotUnlock);
|
Loading…
Reference in new issue