aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/World
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2014-06-24 13:17:23 -0500
committerSubv <subv2112@gmail.com>2014-06-24 13:17:41 -0500
commitf03d49705dc7a0c00350119b319dcf9feb566529 (patch)
treea60451bfe422d75a9378a4c124d7839be5e07789 /src/server/game/World
parent0a592dd9dbd34818deee472dd42d700b4746a27e (diff)
Core/Databases: Removed ACE dependencies on some of the database handling code.
Diffstat (limited to 'src/server/game/World')
-rw-r--r--src/server/game/World/World.cpp20
-rw-r--r--src/server/game/World/World.h2
2 files changed, 10 insertions, 12 deletions
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index e5b207d9b46..234a366b08e 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -2731,7 +2731,7 @@ void World::UpdateRealmCharCount(uint32 accountId)
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_COUNT);
stmt->setUInt32(0, accountId);
PreparedQueryResultFuture result = CharacterDatabase.AsyncQuery(stmt);
- m_realmCharCallbacks.insert(result);
+ m_realmCharCallbacks.push_back(std::move(result));
}
void World::_UpdateRealmCharCount(PreparedQueryResult resultCharCount)
@@ -3088,19 +3088,17 @@ void World::ProcessQueryCallbacks()
{
PreparedQueryResult result;
- while (!m_realmCharCallbacks.is_empty())
+ for (std::deque<std::future<PreparedQueryResult>>::iterator itr = m_realmCharCallbacks.begin(); itr != m_realmCharCallbacks.end(); )
{
- ACE_Future<PreparedQueryResult> lResult;
- ACE_Time_Value timeout = ACE_Time_Value::zero;
- if (m_realmCharCallbacks.next_readable(lResult, &timeout) != 1)
- break;
-
- if (lResult.ready())
+ if ((*itr).wait_for(std::chrono::seconds(0)) != std::future_status::ready)
{
- lResult.get(result);
- _UpdateRealmCharCount(result);
- lResult.cancel();
+ ++itr;
+ continue;
}
+
+ result = (*itr).get();
+ _UpdateRealmCharCount(result);
+ itr = m_realmCharCallbacks.erase(itr);
}
}
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index f5c0dd1cb8f..9c68ee8add2 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -839,7 +839,7 @@ class World
void LoadCharacterNameData();
void ProcessQueryCallbacks();
- ACE_Future_Set<PreparedQueryResult> m_realmCharCallbacks;
+ std::deque<std::future<PreparedQueryResult>> m_realmCharCallbacks;
};
extern uint32 realmID;