diff --git a/panda/src/gobj/geomMunger.cxx b/panda/src/gobj/geomMunger.cxx index 374e9d5223..61b15324e7 100644 --- a/panda/src/gobj/geomMunger.cxx +++ b/panda/src/gobj/geomMunger.cxx @@ -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 ©) : { #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()) { diff --git a/panda/src/gobj/geomMunger.h b/panda/src/gobj/geomMunger.h index 768f53633e..76efcc2f6c 100644 --- a/panda/src/gobj/geomMunger.h +++ b/panda/src/gobj/geomMunger.h @@ -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