need ReMutex

This commit is contained in:
David Rose 2007-07-18 06:48:15 +00:00
parent a2e7037b16
commit 82b5c8ad5a
2 changed files with 8 additions and 6 deletions

View File

@ -20,6 +20,7 @@
#include "geom.h"
#include "geomCacheManager.h"
#include "mutexHolder.h"
#include "reMutexHolder.h"
#include "pStatTimer.h"
GeomMunger::Registry *GeomMunger::_registry = NULL;
@ -39,7 +40,7 @@ GeomMunger(GraphicsStateGuardianBase *gsg) :
{
#ifndef NDEBUG
Registry *registry = get_registry();
MutexHolder holder(registry->_registry_lock);
ReMutexHolder holder(registry->_registry_lock);
_registered_key = registry->_mungers.end();
#endif
}
@ -55,7 +56,7 @@ GeomMunger(const GeomMunger &copy) :
{
#ifndef NDEBUG
Registry *registry = get_registry();
MutexHolder holder(registry->_registry_lock);
ReMutexHolder holder(registry->_registry_lock);
_registered_key = registry->_mungers.end();
#endif
}
@ -475,7 +476,7 @@ register_munger(GeomMunger *munger, Thread *current_thread) {
// will be automatically deleted when this function returns.
PT(GeomMunger) pt_munger = munger;
MutexHolder holder(_registry_lock);
ReMutexHolder holder(_registry_lock);
Mungers::iterator mi = _mungers.insert(munger).first;
GeomMunger *new_munger = (*mi);
@ -496,7 +497,7 @@ register_munger(GeomMunger *munger, Thread *current_thread) {
////////////////////////////////////////////////////////////////////
void GeomMunger::Registry::
unregister_munger(GeomMunger *munger) {
MutexHolder holder(_registry_lock);
ReMutexHolder holder(_registry_lock);
nassertv(munger->is_registered());
nassertv(munger->_registered_key != _mungers.end());
@ -513,7 +514,7 @@ unregister_munger(GeomMunger *munger) {
////////////////////////////////////////////////////////////////////
void GeomMunger::Registry::
unregister_mungers_for_gsg(GraphicsStateGuardianBase *gsg) {
MutexHolder holder(_registry_lock);
ReMutexHolder holder(_registry_lock);
Mungers::iterator mi = _mungers.begin();
while (mi != _mungers.end()) {

View File

@ -28,6 +28,7 @@
#include "indirectCompareTo.h"
#include "pStatCollector.h"
#include "pmutex.h"
#include "reMutex.h"
#include "pointerTo.h"
#include "pmap.h"
#include "pset.h"
@ -144,7 +145,7 @@ private:
void unregister_mungers_for_gsg(GraphicsStateGuardianBase *gsg);
Mungers _mungers;
Mutex _registry_lock;
ReMutex _registry_lock;
};
// We store the iterator into the above registry, while we are