osg::PThreadBase Class Reference
[Multithreading]

#include <OSGThread.h>

Inheritance diagram for osg::PThreadBase:

osg::ThreadCommonBase osg::BaseThread osg::BasePThreadBase osg::BaseThreadCommonBase osg::MPBase osg::MemoryObject osg::ExternalThread osg::Thread

List of all members.

Public Types

typedef MPThreadType Type
typedef void(* ThreadFuncF )(void *pThreadArg)

Public Member Functions

bool isInitialized (void)
Run


bool runFunction (ThreadFuncF fThreadFunc, UInt32 uiAspectId, void *pThreadArg)
Get


ChangeListgetChangeList (void)
Run


void run (void)
bool runFunction (ThreadFuncF fThreadFunc, void *pThreadArg)
Blocking


void block (void)
void unblock (void)
Helper


bool exists (void)
void terminate (void)
void kill (void)
Dump


void print (void)
Get


virtual MPTypegetType (void)
virtual const MPTypegetType (void) const
UInt32 getTypeId (void)
const Char8getCName (void) const
Reference Counting


void addRef (void)
void subRef (void)
Int32 getRefCount (void)

Static Public Member Functions

Get


static UInt32 getAspect (void)
static ChangeListgetCurrentChangeList (void)
Get


static BaseThreadget (const Char8 *szName)
static BaseThreadfind (const Char8 *szName)
static BaseThreadcreate (void)
static const MPThreadTypegetClassType (void)
Get


static BaseThreadgetCurrent (void)
Join


static void join (BaseThread *pThread)
Class Get


static const MPTypegetStaticType (void)
static UInt32 getStaticTypeId (void)

Static Public Attributes

static const UInt32 InvalidAspect

Protected Types

typedef ThreadCommonBase Inherited

Protected Member Functions

Constructors


 PThreadBase (const Char8 *szName, UInt32 uiId)
Destructor


virtual ~PThreadBase (void)
Setup


virtual void init (void)
void setupAspect (void)
void setupChangeList (void)
Set


void setAspect (UInt32 uiAspectId)
void setChangeList (ChangeList *pChangeList)
Workproc


virtual void workProc (void)
Construction


void setupThread (void)
void setupBlockCond (void)

Static Protected Member Functions

Free


static void freeAspect (void *pAspect)
static void freeChangeList (void *pChangeList)
Class Specific


static BaseThreadcreate (const Char8 *szName, UInt32 uiId)
static void initThreading (void)
static void runWorkProc (void *pThread)
Join


static void join (BasePThreadBase *threadP)
Helper


static void * threadFunc (void *pThreadArg)
static void freeThread (void *pThread)

Protected Attributes

UInt32 _uiThreadId
bool _bInitialized
Member


UInt32 _uiAspectId
ChangeList_pChangeList
Instance Variables


void * _pThreadData [3]
pthread_t * _pThreadDesc
pthread_cond_t * _pBlockCond
pthread_mutex_t * _pBlockMutex
Class Specific


Char8_szName

Static Protected Attributes

static MPThreadType _type
static pthread_key_t _threadKey
Member


static pthread_key_t _aspectKey
static pthread_key_t _changeListKey

Private Member Functions

 PThreadBase (const PThreadBase &source)
 prohibit default function (move to 'public' if needed)
void operator= (const PThreadBase &source)
 prohibit default function (move to 'public' if needed)

Friends

class ThreadManager


Detailed Description

Definition at line 166 of file OSGThread.h.


Member Typedef Documentation

Reimplemented from osg::ThreadCommonBase.

Reimplemented in osg::Thread, and osg::ExternalThread.

Definition at line 193 of file OSGThread.h.

typedef MPThreadType osg::BaseThread::Type [inherited]

Reimplemented in osg::Thread, and osg::ExternalThread.

Definition at line 565 of file OSGBaseThread.h.

typedef void(* osg::BaseThreadCommonBase::ThreadFuncF)(void *pThreadArg) [inherited]


Constructor & Destructor Documentation

PThreadBase::PThreadBase ( const Char8 szName,
UInt32  uiId 
) [protected]

Definition at line 204 of file OSGThread.cpp.

00205                                               :
00206     Inherited(szName, uiId)
00207 {
00208 }

PThreadBase::~PThreadBase ( void   )  [protected, virtual]

Definition at line 213 of file OSGThread.cpp.

00214 {
00215 }

osg::PThreadBase::PThreadBase ( const PThreadBase source  )  [private]


Member Function Documentation

UInt32 PThreadBase::getAspect ( void   )  [static]

Definition at line 133 of file OSGThread.cpp.

References _aspectKey.

Referenced by osg::ChangeList::apply(), osg::ChangeList::applyToCurrent(), osg::TextureChunk::changed(), osg::SHLChunk::changed(), osg::Geometry::changed(), osg::FieldContainerPtrBase::deleteContainers(), osg::FieldContainerPtrBase::FieldContainerPtrBase(), osg::NodePtr::getCore(), osg::NodePtr::getCPtr(), osg::ConstFCPtr< BasePtrTypeT, FieldContainerTypeT >::getCPtr(), osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::getCPtr(), osg::ConstFieldContainerPtr::getCPtr(), osg::FieldContainerPtr::getCPtr(), osg::CNodePtr::getCPtr(), osg::AttachmentPtr::getCPtr(), osg::AttachmentContainerPtr::getCPtr(), osg::CNodePtr::getNode(), osg::FieldContainer::newPtr(), osg::TextureChunk::onCreate(), osg::Surface::onCreate(), osg::SHLChunk::onCreate(), osg::Geometry::onCreate(), osg::NodePtr::operator*(), osg::ConstFCPtr< BasePtrTypeT, FieldContainerTypeT >::operator*(), osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::operator*(), osg::ConstFieldContainerPtr::operator*(), osg::FieldContainerPtr::operator*(), osg::CNodePtr::operator*(), osg::AttachmentPtr::operator*(), osg::AttachmentContainerPtr::operator*(), osg::NodePtr::operator->(), osg::ConstFCPtr< BasePtrTypeT, FieldContainerTypeT >::operator->(), osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::operator->(), osg::ConstFieldContainerPtr::operator->(), osg::FieldContainerPtr::operator->(), osg::CNodePtr::operator->(), osg::AttachmentPtr::operator->(), osg::AttachmentContainerPtr::operator->(), and osg::ProxyGroup::startLoading().

00134 {
00135 #if defined(OSG_PTHREAD_ELF_TLS)
00136     return _uiTLSAspectId;
00137 #else
00138     UInt32 *pUint;
00139 
00140     pUint = (UInt32 *) pthread_getspecific(_aspectKey);
00141 
00142     return *pUint;
00143 #endif
00144 
00145 }

ChangeList * PThreadBase::getCurrentChangeList ( void   )  [static]

Definition at line 147 of file OSGThread.cpp.

References _changeListKey.

Referenced by osg::FieldContainerPtrBase::addRef(), osg::FieldContainerPtrBase::deleteContainers(), osg::FieldContainerPtr::endEditNotChanged(), osg::ClusterWindow::frameInit(), osg::FieldContainer::newPtr(), and osg::FieldContainerPtrBase::subRef().

00148 {
00149 #if defined(OSG_PTHREAD_ELF_TLS)
00150     return _pTLSChangeList;
00151 #else
00152     ChangeList **pCList;
00153 
00154     pCList = (ChangeList **) pthread_getspecific(_changeListKey);
00155 
00156     return *pCList;
00157 #endif
00158 }

bool PThreadBase::runFunction ( ThreadFuncF  fThreadFunc,
UInt32  uiAspectId,
void *  pThreadArg 
)

Definition at line 165 of file OSGThread.cpp.

References osg::ThreadManager::getNumAspects(), osg::BaseThread::runFunction(), osg::ThreadCommonBase::setAspect(), and SFATAL.

Referenced by osg::SceneFileHandler::initReadProgress(), osg::Thread::run(), osg::ProxyGroup::startLoading(), and osg::startSceneGraphViewThread().

00168 {
00169     if(uiAspectId >= ThreadManager::getNumAspects())
00170     {
00171         SFATAL << "OSGPTB : invalid aspect id" << std::endl;
00172         return false;
00173     }
00174 
00175     Inherited::setAspect(uiAspectId);
00176 
00177     return Inherited::runFunction(fThreadFunc, pThreadArg);
00178 }

void PThreadBase::freeAspect ( void *  pAspect  )  [static, protected]

Definition at line 184 of file OSGThread.cpp.

Referenced by osg::Thread::initThreading(), and osg::ThreadManager::shutdown().

00185 {
00186     UInt32 *pUint = (UInt32 *) pAspect;
00187 
00188     if(pUint != NULL)
00189         delete pUint;
00190 }

void PThreadBase::freeChangeList ( void *  pChangeList  )  [static, protected]

Definition at line 192 of file OSGThread.cpp.

Referenced by osg::Thread::initThreading(), and osg::ThreadManager::shutdown().

00193 {
00194     ChangeList **pCl = (ChangeList **) pChangeList;
00195 
00196     if(pCl != NULL)
00197         delete pCl;
00198 }

void PThreadBase::init ( void   )  [protected, virtual]

Reimplemented from osg::BasePThreadBase.

Definition at line 220 of file OSGThread.cpp.

References osg::BaseThreadCommonBase::_bInitialized, init(), setupAspect(), and setupChangeList().

Referenced by osg::ExternalThread::initialize().

00221 {
00222     if(_bInitialized == true)
00223         return;
00224 
00225     Inherited::init();
00226 
00227     if(_bInitialized == true)
00228     {
00229         setupAspect    ();        
00230         setupChangeList();        
00231     }
00232 }

void PThreadBase::setupAspect ( void   )  [protected]

Definition at line 235 of file OSGThread.cpp.

References _aspectKey, and osg::ThreadCommonBase::_uiAspectId.

Referenced by init().

00236 {
00237 
00238 #if defined(OSG_PTHREAD_ELF_TLS)
00239     _uiTLSAspectId  = Inherited::_uiAspectId;
00240 #else
00241     UInt32 *pUint = new UInt32;
00242 
00243     *pUint = Inherited::_uiAspectId;
00244 
00245     pthread_setspecific(_aspectKey, (void *) pUint);  
00246 #endif
00247 }

void PThreadBase::setupChangeList ( void   )  [protected]

Definition at line 249 of file OSGThread.cpp.

References _changeListKey, osg::ThreadCommonBase::_pChangeList, osg::ThreadCommonBase::_uiAspectId, osg::ChangeList::clearAll(), and osg::ThreadCommonBase::setChangeList().

Referenced by init().

00250 {
00251 #if defined(OSG_PTHREAD_ELF_TLS)
00252     if(Inherited::_pChangeList == NULL)
00253     {
00254         _pTLSChangeList = new ChangeList;
00255 
00256         Inherited::setChangeList(_pTLSChangeList);
00257     }
00258     else
00259     {
00260         _pTLSChangeList = Inherited::_pChangeList;
00261         
00262         _pTLSChangeList->clearAll();
00263     }
00264     
00265     _pTLSChangeList->setAspect(Inherited::_uiAspectId);
00266 #else
00267     ChangeList **pChangeList = new ChangeList *;
00268 
00269     if(Inherited::_pChangeList == NULL)
00270     {
00271         *pChangeList = new ChangeList;
00272 
00273         Inherited::setChangeList(*pChangeList);
00274     }
00275     else
00276     {
00277         *pChangeList = Inherited::_pChangeList;
00278         
00279         (*pChangeList)->clearAll();
00280     }
00281 
00282     (*pChangeList)->setAspect(Inherited::_uiAspectId);
00283     pthread_setspecific(_changeListKey, (void *) pChangeList);  
00284 #endif
00285 }

void osg::PThreadBase::operator= ( const PThreadBase source  )  [private]

ChangeList * ThreadCommonBase::getChangeList ( void   )  [inherited]

Definition at line 77 of file OSGThread.cpp.

References osg::ThreadCommonBase::_pChangeList.

00078 {
00079     return _pChangeList;
00080 }

void ThreadCommonBase::setAspect ( UInt32  uiAspectId  )  [protected, inherited]

Definition at line 107 of file OSGThread.cpp.

References osg::ThreadCommonBase::_uiAspectId.

Referenced by osg::ExternalThread::initialize(), and runFunction().

00108 {
00109     _uiAspectId = uiAspectId;
00110 }

void ThreadCommonBase::setChangeList ( ChangeList pChangeList  )  [protected, inherited]

Definition at line 112 of file OSGThread.cpp.

References osg::ThreadCommonBase::_pChangeList, and osg::setRefP().

Referenced by setupChangeList().

00113 {
00114     setRefP(_pChangeList, pChangeList);
00115 }

BaseThread * BaseThread::get ( const Char8 szName  )  [static, inherited]

Reimplemented in osg::Thread, and osg::ExternalThread.

Definition at line 752 of file OSGBaseThread.cpp.

References osg::ThreadManager::getThread(), and osg::ThreadManager::the().

Referenced by osg::BaseThread::create(), osg::PointMCastConnection::initialize(), and osg::GroupMCastConnection::initialize().

00753 {
00754     return ThreadManager::the()->getThread(szName, "OSGBaseThread");
00755 }

BaseThread * BaseThread::find ( const Char8 szName  )  [static, inherited]

Reimplemented in osg::Thread, and osg::ExternalThread.

Definition at line 757 of file OSGBaseThread.cpp.

References osg::ThreadManager::findThread(), and osg::ThreadManager::the().

00758 {
00759     return ThreadManager::the()->findThread(szName);
00760 }

BaseThread * BaseThread::create ( void   )  [static, inherited]

Definition at line 762 of file OSGBaseThread.cpp.

References osg::BaseThread::get().

00763 {
00764     return BaseThread::get(NULL);
00765 }

BaseThread * BaseThread::create ( const Char8 szName,
UInt32  uiId 
) [static, protected, inherited]

Reimplemented in osg::Thread, and osg::ExternalThread.

Definition at line 839 of file OSGBaseThread.cpp.

References osg::BaseThread::BaseThread().

00840 {
00841     return new BaseThread(szName, uiId);
00842 }

const MPThreadType & BaseThread::getClassType ( void   )  [static, inherited]

Definition at line 767 of file OSGBaseThread.cpp.

References osg::BaseThread::_type.

Referenced by osg::ThreadManager::init().

00768 {
00769     return _type;
00770 }

BaseThread * BaseThread::getCurrent ( void   )  [static, inherited]

Reimplemented from osg::BasePThreadBase.

Reimplemented in osg::Thread, and osg::ExternalThread.

Definition at line 774 of file OSGBaseThread.cpp.

References osg::Directory::getCurrent().

00775 {
00776     return Inherited::getCurrent();
00777 }

void BaseThread::join ( BaseThread pThread  )  [static, inherited]

void BasePThreadBase::join ( BasePThreadBase threadP  )  [static, protected, inherited]

Definition at line 221 of file OSGBaseThread.cpp.

References osg::BasePThreadBase::_pThreadDesc.

Referenced by osg::BaseThread::join().

00222 {
00223     if(pThread != NULL && pThread->_pThreadDesc != NULL)
00224     {
00225         pthread_join(*(pThread->_pThreadDesc), NULL);
00226     }
00227 }

void BaseThread::run ( void   )  [inherited]

Definition at line 789 of file OSGBaseThread.cpp.

References osg::BasePThreadBase::runFunction(), and osg::BaseThread::runWorkProc().

00790 {
00791     Inherited::runFunction(runWorkProc, this);
00792 }

bool BaseThread::runFunction ( ThreadFuncF  fThreadFunc,
void *  pThreadArg 
) [inherited]

Reimplemented from osg::BasePThreadBase.

Definition at line 794 of file OSGBaseThread.cpp.

References osg::BasePThreadBase::runFunction().

Referenced by osg::GroupMCastConnection::initialize(), and runFunction().

00796 {
00797     return Inherited::runFunction(fThreadFunc, pThreadArg);
00798 }

void BaseThread::block ( void   )  [inherited]

Reimplemented from osg::BasePThreadBase.

Definition at line 802 of file OSGBaseThread.cpp.

References osg::BasePThreadBase::block().

00803 {
00804     Inherited::block();
00805 }

void BaseThread::unblock ( void   )  [inherited]

Reimplemented from osg::BasePThreadBase.

Definition at line 807 of file OSGBaseThread.cpp.

References osg::BasePThreadBase::unblock().

00808 {
00809     Inherited::unblock();
00810 }

bool BaseThread::exists ( void   )  [inherited]

Reimplemented from osg::BasePThreadBase.

Definition at line 814 of file OSGBaseThread.cpp.

References osg::BasePThreadBase::exists().

00815 {
00816     return Inherited::exists();
00817 }

void BaseThread::terminate ( void   )  [inherited]

Reimplemented from osg::BasePThreadBase.

Definition at line 820 of file OSGBaseThread.cpp.

References osg::BasePThreadBase::terminate().

Referenced by osg::BaseThread::~BaseThread().

00821 {
00822     Inherited::terminate();
00823 }

void BaseThread::kill ( void   )  [inherited]

Reimplemented from osg::BasePThreadBase.

Definition at line 825 of file OSGBaseThread.cpp.

References osg::BasePThreadBase::kill().

00826 {
00827     Inherited::kill();
00828 }

void BaseThread::print ( void   )  [inherited]

Reimplemented from osg::BasePThreadBase.

Definition at line 832 of file OSGBaseThread.cpp.

References osg::BasePThreadBase::print().

00833 {
00834     Inherited::print();
00835 }

void BaseThread::initThreading ( void   )  [static, protected, inherited]

Reimplemented in osg::Thread.

Definition at line 844 of file OSGBaseThread.cpp.

References osg::BasePThreadBase::_threadKey, FFASSERT, FINFO, and osg::BasePThreadBase::freeThread().

00845 {
00846     FINFO(("BaseThread::initThreading\n"))
00847 
00848 #if defined(OSG_USE_PTHREADS) && !defined(OSG_PTHREAD_ELF_TLS)
00849     int rc;
00850 
00851     rc = pthread_key_create(&(BaseThread::_threadKey),
00852                               BaseThread::freeThread);
00853 
00854     FFASSERT((rc == 0), 1, ("Failed to create pthread thread key\n");)
00855 #endif
00856 
00857 #if defined(OSG_USE_WINTHREADS) && defined (OSG_ASPECT_USE_LOCALSTORAGE)
00858     BaseThread::_threadKey     = TlsAlloc();
00859 
00860     FFASSERT((BaseThread::_threadKey != 0xFFFFFFFF), 1,
00861              ("Failed to alloc thread key local storage\n");)
00862 #endif
00863 }

void BaseThread::runWorkProc ( void *  pThread  )  [static, protected, inherited]

Definition at line 865 of file OSGBaseThread.cpp.

References osg::BaseThread::workProc().

Referenced by osg::Thread::run(), and osg::BaseThread::run().

00866 {
00867     if(pThread != NULL)
00868     {
00869         static_cast<BaseThread *>(pThread)->workProc();
00870     }
00871 }

void BaseThread::workProc ( void   )  [protected, virtual, inherited]

Definition at line 893 of file OSGBaseThread.cpp.

Referenced by osg::BaseThread::runWorkProc().

00894 {
00895 }

void * BasePThreadBase::threadFunc ( void *  pThreadArg  )  [static, protected, inherited]

Definition at line 114 of file OSGBaseThread.cpp.

Referenced by osg::BasePThreadBase::runFunction().

00115 {
00116     void **pArgs = (void **) pThreadArg;
00117 
00118     if(pArgs != NULL)
00119     {
00120         if(pArgs[2] != NULL)
00121         {
00122             ((BaseThread *) pArgs[2])->init();
00123 
00124             if(pArgs[0] != NULL)
00125             {
00126                 ThreadFuncF fThreadFunc = (ThreadFuncF) pArgs[0];
00127 
00128                 fThreadFunc(pArgs[1]);
00129             }
00130         }
00131     }
00132 
00133     return NULL;
00134 }

void BasePThreadBase::freeThread ( void *  pThread  )  [static, protected, inherited]

Definition at line 137 of file OSGBaseThread.cpp.

Referenced by osg::BaseThread::initThreading(), and osg::ThreadManager::shutdown().

00138 {
00139     BaseThread **pT = static_cast<BaseThread **>(pThread);
00140 
00141     delete pT;
00142 }

void BasePThreadBase::setupThread ( void   )  [protected, inherited]

Definition at line 171 of file OSGBaseThread.cpp.

References osg::BasePThreadBase::_threadKey.

Referenced by osg::BasePThreadBase::init().

00172 {
00173 #ifdef OSG_PTHREAD_ELF_TLS
00174     _pLocalThread = static_cast<BaseThread *>(this);
00175 #else
00176     BaseThread **pThread = new BaseThread *;
00177 
00178     *pThread = (BaseThread *) this;
00179 
00180     pthread_setspecific(_threadKey, (void *) pThread);
00181 #endif
00182 }

void BasePThreadBase::setupBlockCond ( void   )  [protected, inherited]

Definition at line 184 of file OSGBaseThread.cpp.

References osg::BasePThreadBase::_pBlockCond, and osg::BasePThreadBase::_pBlockMutex.

Referenced by osg::BasePThreadBase::init().

00185 {
00186     _pBlockCond  = new pthread_cond_t;
00187     _pBlockMutex = new pthread_mutex_t;
00188 
00189     pthread_cond_init (_pBlockCond, NULL);
00190     pthread_mutex_init(_pBlockMutex, NULL);
00191 }

bool BaseThreadCommonBase::isInitialized ( void   )  [inherited]

Definition at line 73 of file OSGBaseThread.cpp.

References osg::BaseThreadCommonBase::_bInitialized.

00074 {
00075     return _bInitialized;
00076 }

const MPType & MPBase::getStaticType ( void   )  [static, inherited]

Definition at line 253 of file OSGMPBase.cpp.

References osg::MPBase::_type.

00254 {
00255     return _type;
00256 }

UInt32 MPBase::getStaticTypeId ( void   )  [static, inherited]

Definition at line 259 of file OSGMPBase.cpp.

00260 {
00261     return 0;
00262 }

MPType & MPBase::getType ( void   )  [virtual, inherited]

Definition at line 265 of file OSGMPBase.cpp.

References osg::MPBase::_type.

Referenced by osg::MPBase::getTypeId().

00266 {
00267     return _type;
00268 }

const MPType & MPBase::getType ( void   )  const [virtual, inherited]

Definition at line 271 of file OSGMPBase.cpp.

References osg::MPBase::_type.

00272 {
00273     return _type;
00274 }

UInt32 MPBase::getTypeId ( void   )  [inherited]

Definition at line 277 of file OSGMPBase.cpp.

References osg::TypeBase::getId(), and osg::MPBase::getType().

00278 {
00279     return getType().getId();
00280 }

const Char8 * MPBase::getCName ( void   )  const [inherited]

Definition at line 283 of file OSGMPBase.cpp.

References osg::MPBase::_szName.

00284 {
00285     return _szName;
00286 }

void MemoryObject::addRef ( void   )  [inherited]

void MemoryObject::subRef ( void   )  [inherited]

Definition at line 69 of file OSGMemoryObject.cpp.

References osg::MemoryObject::_refCount.

00070 {
00071     _refCount--;
00072 
00073     if(_refCount <= 0)
00074         delete this;
00075 }

Int32 MemoryObject::getRefCount ( void   )  [inherited]

Definition at line 77 of file OSGMemoryObject.cpp.

References osg::MemoryObject::_refCount.

00078 {
00079     return _refCount;
00080 }


Friends And Related Function Documentation

friend class ThreadManager [friend]

Reimplemented from osg::ThreadCommonBase.

Reimplemented in osg::Thread, and osg::ExternalThread.

Definition at line 246 of file OSGThread.h.


Member Data Documentation

pthread_key_t PThreadBase::_aspectKey [static, protected]

Definition at line 203 of file OSGThread.h.

Referenced by getAspect(), osg::Thread::initThreading(), and setupAspect().

pthread_key_t PThreadBase::_changeListKey [static, protected]

Definition at line 204 of file OSGThread.h.

Referenced by getCurrentChangeList(), osg::Thread::initThreading(), and setupChangeList().

const UInt32 ThreadCommonBase::InvalidAspect [static, inherited]

Initial value:

Definition at line 96 of file OSGThread.h.

Definition at line 115 of file OSGThread.h.

Referenced by osg::ThreadCommonBase::setAspect(), setupAspect(), and setupChangeList().

MPThreadType BaseThread::_type [static, protected, inherited]

Reimplemented from osg::MPBase.

Reimplemented in osg::Thread, and osg::ExternalThread.

Definition at line 631 of file OSGBaseThread.h.

Referenced by osg::BaseThread::getClassType().

pthread_key_t BasePThreadBase::_threadKey [static, protected, inherited]

void* osg::BasePThreadBase::_pThreadData[3] [protected, inherited]

pthread_t* osg::BasePThreadBase::_pThreadDesc [protected, inherited]

pthread_cond_t* osg::BasePThreadBase::_pBlockCond [protected, inherited]

pthread_mutex_t* osg::BasePThreadBase::_pBlockMutex [protected, inherited]

Definition at line 100 of file OSGBaseThread.h.

Referenced by osg::BasePThreadBase::print().

bool osg::BaseThreadCommonBase::_bInitialized [protected, inherited]

Char8* osg::MPBase::_szName [protected, inherited]


The documentation for this class was generated from the following files:

Generated on Mon Mar 17 12:04:50 2008 for OpenSG by  doxygen 1.5.5