aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Globals/ObjectMgr.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index f78d6dc15f1..9e158fbfa81 100755
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -7513,8 +7513,9 @@ void ObjectMgr::SaveCreatureRespawnTime(uint32 loguid, uint32 instance, time_t t
{
// This function can be Called from various map threads concurrently
{
- ACE_GUARD(ACE_Thread_Mutex, guard, m_CreatureRespawnTimesMtx);
+ m_CreatureRespawnTimesMtx.acquire();
mCreatureRespawnTimes[MAKE_PAIR64(loguid,instance)] = t;
+ m_CreatureRespawnTimesMtx.release();
}
PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CRESPAWNTIME);
@@ -7546,8 +7547,9 @@ void ObjectMgr::SaveGORespawnTime(uint32 loguid, uint32 instance, time_t t)
{
// This function can be called from different map threads concurrently
{
- ACE_GUARD(ACE_Thread_Mutex, guard, m_GORespawnTimesMtx);
+ m_GORespawnTimesMtx.acquire();
mGORespawnTimes[MAKE_PAIR64(loguid,instance)] = t;
+ m_GORespawnTimesMtx.release();
}
WorldDatabase.PExecute("DELETE FROM gameobject_respawn WHERE guid = '%u' AND instance = '%u'", loguid, instance);
@@ -7561,7 +7563,7 @@ void ObjectMgr::DeleteRespawnTimeForInstance(uint32 instance)
RespawnTimes::iterator next;
{
- ACE_GUARD(ACE_Thread_Mutex, guard, m_GORespawnTimesMtx);
+ m_GORespawnTimesMtx.acquire();
for (RespawnTimes::iterator itr = mGORespawnTimes.begin(); itr != mGORespawnTimes.end(); itr = next)
{
next = itr;
@@ -7570,9 +7572,10 @@ void ObjectMgr::DeleteRespawnTimeForInstance(uint32 instance)
if (GUID_HIPART(itr->first) == instance)
mGORespawnTimes.erase(itr);
}
+ m_GORespawnTimesMtx.release();
}
{
- ACE_GUARD(ACE_Thread_Mutex, guard, m_CreatureRespawnTimesMtx);
+ m_CreatureRespawnTimesMtx.acquire();
for (RespawnTimes::iterator itr = mCreatureRespawnTimes.begin(); itr != mCreatureRespawnTimes.end(); itr = next)
{
next = itr;
@@ -7581,6 +7584,7 @@ void ObjectMgr::DeleteRespawnTimeForInstance(uint32 instance)
if (GUID_HIPART(itr->first) == instance)
mCreatureRespawnTimes.erase(itr);
}
+ m_CreatureRespawnTimesMtx.release();
}
WorldDatabase.PExecute("DELETE FROM creature_respawn WHERE instance = '%u'", instance);
WorldDatabase.PExecute("DELETE FROM gameobject_respawn WHERE instance = '%u'", instance);