From 56a13abc05f9d7cb2178c90834e1500e7332dae1 Mon Sep 17 00:00:00 2001 From: Don BURNS Date: Sat, 19 Jul 2003 00:18:07 +0000 Subject: [PATCH] Updated OSG to use OpenThreads. Moved any references to OpenThread to OpenThreads and removed any dependency on Producer threads, Mutexes, etc. --- Make/instexamplesrc | 2 +- Make/instrules | 23 ++++++++++++----------- Make/makedefs | 4 ++-- include/osgProducer/DatabasePager | 14 +++++++------- include/osgProducer/KeyboardMouseCallback | 4 ++-- src/osgProducer/DatabasePager.cpp | 3 ++- src/osgProducer/GNUmakefile | 7 ------- src/osgProducer/OsgSceneHandler.cpp | 5 +++-- 8 files changed, 29 insertions(+), 33 deletions(-) diff --git a/Make/instexamplesrc b/Make/instexamplesrc index 0e1534ad8..96cb466bf 100755 --- a/Make/instexamplesrc +++ b/Make/instexamplesrc @@ -21,7 +21,7 @@ shift; shift; shift; shift; shift; shift; shift; shift; OTHER_LIBS=$1 TIFF_LIB=$2 -[ "`uname`" = "Darwin" ] && MAKE=make || MAKE=gmake +[ "`uname`" = "Darwin" ] && MAKE=gnumake || MAKE=gmake copy_example_source() diff --git a/Make/instrules b/Make/instrules index e9edf2592..b7b321bdd 100644 --- a/Make/instrules +++ b/Make/instrules @@ -154,17 +154,18 @@ __instclean : empty=`ls $(INSTDEST)`;\ if [ -z "$$empty" ];\ then\ - repeat=1;\ - while [ $$repeat = 1 ] ; \ - do \ - printf "$(INSTDEST) is empty. Remove? (y/n) [y]: ";\ - read resp;\ - case $$resp in \ - ""|Yes|YES|yes|Y|y) rm -rf $(INSTDEST); repeat=0;; \ - n|N|no|NO) repeat=0;; \ - *) repeat=1;; \ - esac\ - done\ + rm -rf $(INSTDEST) +# repeat=1;\ +# while [ $$repeat = 1 ] ; \ +# do \ +# printf "$(INSTDEST) is empty. Remove? (y/n) [y]: ";\ +# read resp;\ +# case $$resp in \ +# ""|Yes|YES|yes|Y|y) rm -rf $(INSTDEST); repeat=0;; \ +# n|N|no|NO) repeat=0;; \ +# *) repeat=1;; \ +# esac\ +# done\ fi\ fi diff --git a/Make/makedefs b/Make/makedefs index b963aaa4b..c08a37be3 100644 --- a/Make/makedefs +++ b/Make/makedefs @@ -293,7 +293,7 @@ ifeq ($(OS),Linux) PF_XTRA_LIBS = -L/usr/lib/libpfdb -Xlinker -rpath /usr/lib/libpfdb \ -lpfdu -lpfutil -lpf SOCKET_LIBS = - OTHER_LIBS = -lpthread + OTHER_LIBS = -lOpenThreads PNG_LIBS = -lpng JPEG_LIBS = -ljpeg TIFF_LIB = -ltiff @@ -469,7 +469,7 @@ else ARCHARGS = ARCHINST = endif - LINKARGS = -lpthread + LINKARGS = -lOpenThreads LIB_EXT = sl PLUGIN_EXT = sl DYNAMICLIBRARYLIB = -ldld diff --git a/include/osgProducer/DatabasePager b/include/osgProducer/DatabasePager index 4b33ab74e..fdb18d407 100644 --- a/include/osgProducer/DatabasePager +++ b/include/osgProducer/DatabasePager @@ -19,8 +19,8 @@ #include #include -#include -#include +#include +#include #include @@ -31,7 +31,7 @@ namespace osgProducer { /** Database paging class which manages the loading of files in a background thread, * and syncronizing of loaded models with the main scene graph.*/ -class OSGPRODUCER_EXPORT DatabasePager : public osg::NodeVisitor::DatabaseRequestHandler, public Producer::Thread +class OSGPRODUCER_EXPORT DatabasePager : public osg::NodeVisitor::DatabaseRequestHandler, public OpenThreads::Thread { public : @@ -118,17 +118,17 @@ class OSGPRODUCER_EXPORT DatabasePager : public osg::NodeVisitor::DatabaseReques typedef std::vector< osg::ref_ptr > DatabaseRequestList; DatabaseRequestList _fileRequestList; - Producer::Mutex _fileRequestListMutex; + OpenThreads::Mutex _fileRequestListMutex; DatabaseRequestList _dataToCompileList; - Producer::Mutex _dataToCompileListMutex; + OpenThreads::Mutex _dataToCompileListMutex; bool _deleteRemovedSubgraphsInDatabaseThread; osg::NodeList _childrenToDeleteList; - Producer::Mutex _childrenToDeleteListMutex; + OpenThreads::Mutex _childrenToDeleteListMutex; DatabaseRequestList _dataToMergeList; - Producer::Mutex _dataToMergeListMutex; + OpenThreads::Mutex _dataToMergeListMutex; PagedLODList _pagedLODList; diff --git a/include/osgProducer/KeyboardMouseCallback b/include/osgProducer/KeyboardMouseCallback index 009283942..f5d0c10cf 100644 --- a/include/osgProducer/KeyboardMouseCallback +++ b/include/osgProducer/KeyboardMouseCallback @@ -14,10 +14,10 @@ #ifndef OSGPRODUCER_EVENTCALLBACK #define OSGPRODUCER_EVENTCALLBACK 1 +#include #include // For definition of KeySymbol #include -#include #include @@ -90,7 +90,7 @@ class OSGPRODUCER_EXPORT KeyboardMouseCallback : public Producer::KeyboardMouseC osg::Timer_t _startTick; osg::Timer _timer; - Producer::Mutex _eventQueueMutex; + OpenThreads::Mutex _eventQueueMutex; EventQueue _eventQueue; }; diff --git a/src/osgProducer/DatabasePager.cpp b/src/osgProducer/DatabasePager.cpp index a1fdb37a4..c0c1c2bb9 100644 --- a/src/osgProducer/DatabasePager.cpp +++ b/src/osgProducer/DatabasePager.cpp @@ -91,7 +91,8 @@ void DatabasePager::requestNodeFile(const std::string& fileName,osg::Group* grou _fileRequestListMutex.unlock(); } - if (!threadIsRunning()) + //if (!threadIsRunning()) + if (!isRunning()) { std::cout<<"DatabasePager::startThread()"< + #include -#include using namespace osgUtil; using namespace osgProducer; @@ -24,7 +25,7 @@ OsgSceneHandler::OsgSceneHandler( osg::DisplaySettings *ds) : void OsgSceneHandler::init() { - static Producer::Mutex mutex; + static OpenThreads::Mutex mutex; osg::notify(osg::INFO)<<"entering "<