aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Globals/ObjectAccessor.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/server/game/Globals/ObjectAccessor.h b/src/server/game/Globals/ObjectAccessor.h
index 8c92a8f3a6e..849ae25a335 100644
--- a/src/server/game/Globals/ObjectAccessor.h
+++ b/src/server/game/Globals/ObjectAccessor.h
@@ -51,7 +51,7 @@ class HashMapHolder
static void Insert(T* o)
{
- boost::shared_lock<boost::shared_mutex> lock(_lock);
+ boost::unique_lock<boost::shared_mutex> lock(_lock);
_objectMap[o->GetGUID()] = o;
}
@@ -59,12 +59,14 @@ class HashMapHolder
static void Remove(T* o)
{
boost::unique_lock<boost::shared_mutex> lock(_lock);
+
_objectMap.erase(o->GetGUID());
}
static T* Find(uint64 guid)
{
boost::shared_lock<boost::shared_mutex> lock(_lock);
+
typename MapType::iterator itr = _objectMap.find(guid);
return (itr != _objectMap.end()) ? itr->second : NULL;
}