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