diff options
| author | Subv <subv2112@gmail.com> | 2014-06-24 13:17:23 -0500 |
|---|---|---|
| committer | Subv <subv2112@gmail.com> | 2014-06-24 13:17:41 -0500 |
| commit | f03d49705dc7a0c00350119b319dcf9feb566529 (patch) | |
| tree | a60451bfe422d75a9378a4c124d7839be5e07789 /src/server/game/World | |
| parent | 0a592dd9dbd34818deee472dd42d700b4746a27e (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.cpp | 20 | ||||
| -rw-r--r-- | src/server/game/World/World.h | 2 |
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; |
