* Remove CellLock class and all cell-level thread locking.
** It was wasting CPU power as cell-level locking is not needed. ** Our multithreading is on map-level, not cell-level. ** CellLock was just a 'proxy' between Cell and CellPair and in some cases carried redundant data. ** Some minor cleanup in Cell::Visit/Map::Visit. --HG-- branch : trunk
This commit is contained in:
@@ -530,8 +530,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
|
||||
|
||||
TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher);
|
||||
|
||||
CellLock<GridReadGuard> cell_lock(cell, pair);
|
||||
cell_lock->Visit(cell_lock, cSearcher, *(m_creature->GetMap()));
|
||||
cell.Visit(pair, cSearcher, *(m_creature->GetMap()));
|
||||
}
|
||||
|
||||
for (std::list<Creature*>::iterator i = templist.begin(); i != templist.end(); ++i)
|
||||
|
||||
@@ -341,10 +341,11 @@ struct TRINITY_DLL_DECL boss_kalecgos_kjAI : public ScriptedAI
|
||||
AllOrbsInGrid check;
|
||||
Trinity::GameObjectListSearcher<AllOrbsInGrid> searcher(me, orbList, check);
|
||||
TypeContainerVisitor<Trinity::GameObjectListSearcher<AllOrbsInGrid>, GridTypeMapContainer> visitor(searcher);
|
||||
CellLock<GridReadGuard> cell_lock(cell, pair);
|
||||
cell_lock->Visit(cell_lock, visitor, *(m_creature->GetMap()));
|
||||
cell.Visit(pair, visitor, *(m_creature->GetMap()));
|
||||
|
||||
if (orbList.empty())
|
||||
return;
|
||||
|
||||
uint8 i = 0;
|
||||
for (std::list<GameObject*>::iterator itr = orbList.begin(); itr != orbList.end(); ++itr, ++i){
|
||||
Orb[i] = pInstance ? pInstance->instance->GetGameObject(pInstance->GetData64((*itr)->GetGUID())) : NULL;
|
||||
|
||||
@@ -193,9 +193,8 @@ struct TRINITY_DLL_DECL boss_akilzonAI : public ScriptedAI
|
||||
TypeContainerVisitor<Trinity::UnitListSearcher<Trinity::AnyAoETargetUnitInObjectRangeCheck>, WorldTypeMapContainer > world_unit_searcher(searcher);
|
||||
TypeContainerVisitor<Trinity::UnitListSearcher<Trinity::AnyAoETargetUnitInObjectRangeCheck>, GridTypeMapContainer > grid_unit_searcher(searcher);
|
||||
|
||||
CellLock<GridReadGuard> cell_lock(cell, p);
|
||||
cell_lock->Visit(cell_lock, world_unit_searcher, *(m_creature->GetMap()));
|
||||
cell_lock->Visit(cell_lock, grid_unit_searcher, *(m_creature->GetMap()));
|
||||
cell.Visit(p, world_unit_searcher, *(m_creature->GetMap()));
|
||||
cell.Visit(p, grid_unit_searcher, *(m_creature->GetMap()));
|
||||
}
|
||||
//dealdamege
|
||||
for (std::list<Unit*>::iterator i = tempUnitMap.begin(); i != tempUnitMap.end(); ++i)
|
||||
|
||||
@@ -239,8 +239,7 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI
|
||||
|
||||
TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher);
|
||||
|
||||
CellLock<GridReadGuard> cell_lock(cell, pair);
|
||||
cell_lock->Visit(cell_lock, cSearcher, *(m_creature->GetMap()));
|
||||
cell.Visit(pair, cSearcher, *(m_creature->GetMap()));
|
||||
}
|
||||
|
||||
//error_log("Eggs %d at middle", templist.size());
|
||||
@@ -274,8 +273,7 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI
|
||||
|
||||
TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher);
|
||||
|
||||
CellLock<GridReadGuard> cell_lock(cell, pair);
|
||||
cell_lock->Visit(cell_lock, cSearcher, *(m_creature->GetMap()));
|
||||
cell.Visit(pair, cSearcher, *(m_creature->GetMap()));
|
||||
}
|
||||
for (std::list<Creature*>::iterator i = templist.begin(); i != templist.end(); ++i)
|
||||
{
|
||||
@@ -507,8 +505,7 @@ struct TRINITY_DLL_DECL mob_amanishi_hatcherAI : public ScriptedAI
|
||||
|
||||
TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher);
|
||||
|
||||
CellLock<GridReadGuard> cell_lock(cell, pair);
|
||||
cell_lock->Visit(cell_lock, cSearcher, *(m_creature->GetMap()));
|
||||
cell.Visit(pair, cSearcher, *(m_creature->GetMap()));
|
||||
}
|
||||
|
||||
//error_log("Eggs %d at %d", templist.size(), side);
|
||||
|
||||
@@ -161,8 +161,7 @@ struct TRINITY_DLL_DECL boss_nalorakkAI : public ScriptedAI
|
||||
|
||||
TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid>, GridTypeMapContainer> cSearcher(searcher);
|
||||
|
||||
CellLock<GridReadGuard> cell_lock(cell, pair);
|
||||
cell_lock->Visit(cell_lock, cSearcher, *(m_creature->GetMap()));
|
||||
cell.Visit(pair, cSearcher, *(m_creature->GetMap()));
|
||||
}
|
||||
|
||||
if (!templist.size())
|
||||
|
||||
@@ -945,9 +945,8 @@ void hyjalAI::HideNearPos(float x, float y)
|
||||
<Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid>,
|
||||
GridTypeMapContainer> creature_visitor(creature_searcher);
|
||||
|
||||
CellLock<GridReadGuard> cell_lock(cell, pair);
|
||||
// Get Creatures
|
||||
cell_lock->Visit(cell_lock, creature_visitor, *(m_creature->GetMap()));
|
||||
cell.Visit(pair, creature_visitor, *(m_creature->GetMap()));
|
||||
|
||||
if (!creatures.empty())
|
||||
{
|
||||
@@ -968,8 +967,7 @@ void hyjalAI::RespawnNearPos(float x, float y)
|
||||
Trinity::RespawnDo u_do;
|
||||
Trinity::WorldObjectWorker<Trinity::RespawnDo> worker(m_creature, u_do);
|
||||
TypeContainerVisitor<Trinity::WorldObjectWorker<Trinity::RespawnDo>, GridTypeMapContainer > obj_worker(worker);
|
||||
CellLock<GridReadGuard> cell_lock(cell, p);
|
||||
cell_lock->Visit(cell_lock, obj_worker, *m_creature->GetMap());
|
||||
cell.Visit(p, obj_worker, *m_creature->GetMap());
|
||||
}
|
||||
void hyjalAI::WaypointReached(uint32 i)
|
||||
{
|
||||
@@ -1005,8 +1003,7 @@ void hyjalAI::WaypointReached(uint32 i)
|
||||
<Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid>,
|
||||
GridTypeMapContainer> creature_visitor(creature_searcher);
|
||||
|
||||
CellLock<GridReadGuard> cell_lock(cell, pair);
|
||||
cell_lock->Visit(cell_lock, creature_visitor, *(m_creature->GetMap()));
|
||||
cell.Visit(pair, creature_visitor, *(m_creature->GetMap()));
|
||||
|
||||
if (!creatures.empty())
|
||||
{
|
||||
@@ -1047,8 +1044,7 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
|
||||
<Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid>,
|
||||
GridTypeMapContainer> creature_visitor(creature_searcher);
|
||||
|
||||
CellLock<GridReadGuard> cell_lock(cell, pair);
|
||||
cell_lock->Visit(cell_lock, creature_visitor, *(m_creature->GetMap()));
|
||||
cell.Visit(pair, creature_visitor, *(m_creature->GetMap()));
|
||||
|
||||
if (!creatures.empty())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user