mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-02 18:43:48 +00:00
refactor(Core/Misc): Use steady_timer instead of deadline_timer (#20940)
This commit is contained in:
@@ -17,7 +17,6 @@
|
||||
|
||||
#include "RealmList.h"
|
||||
#include "DatabaseEnv.h"
|
||||
#include "DeadlineTimer.h"
|
||||
#include "Log.h"
|
||||
#include "Resolver.h"
|
||||
#include "QueryResult.h"
|
||||
@@ -37,7 +36,7 @@ RealmList* RealmList::Instance()
|
||||
void RealmList::Initialize(Acore::Asio::IoContext& ioContext, uint32 updateInterval)
|
||||
{
|
||||
_updateInterval = updateInterval;
|
||||
_updateTimer = std::make_unique<Acore::Asio::DeadlineTimer>(ioContext);
|
||||
_updateTimer = std::make_unique<boost::asio::steady_timer>(ioContext);
|
||||
_resolver = std::make_unique<Acore::Asio::Resolver>(ioContext);
|
||||
|
||||
LoadBuildInfo();
|
||||
@@ -228,7 +227,9 @@ void RealmList::UpdateRealms(boost::system::error_code const& error)
|
||||
|
||||
if (_updateInterval)
|
||||
{
|
||||
_updateTimer->expires_from_now(boost::posix_time::seconds(_updateInterval));
|
||||
// Calculate the expiration time _updateInterval from now
|
||||
auto expiration_time = std::chrono::steady_clock::now() + std::chrono::seconds(_updateInterval);
|
||||
_updateTimer->expires_at(expiration_time);
|
||||
_updateTimer->async_wait([this](boost::system::error_code const& errorCode){ UpdateRealms(errorCode); });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,11 +20,22 @@
|
||||
|
||||
#include "Define.h"
|
||||
#include "Realm.h"
|
||||
#include <boost/asio/steady_timer.hpp>
|
||||
#include <array>
|
||||
#include <map>
|
||||
#include <memory> // NOTE: this import is NEEDED (even though some IDEs report it as unused)
|
||||
#include <vector>
|
||||
|
||||
namespace Acore::Asio
|
||||
{
|
||||
class IoContext;
|
||||
}
|
||||
|
||||
namespace boost::system
|
||||
{
|
||||
class error_code;
|
||||
}
|
||||
|
||||
struct RealmBuildInfo
|
||||
{
|
||||
uint32 Build;
|
||||
@@ -36,11 +47,6 @@ struct RealmBuildInfo
|
||||
std::array<uint8, 20> MacHash;
|
||||
};
|
||||
|
||||
namespace boost::system
|
||||
{
|
||||
class error_code;
|
||||
}
|
||||
|
||||
/// Storage object for the list of realms on the server
|
||||
class AC_SHARED_API RealmList
|
||||
{
|
||||
@@ -70,7 +76,7 @@ private:
|
||||
std::vector<RealmBuildInfo> _builds;
|
||||
RealmMap _realms;
|
||||
uint32 _updateInterval{0};
|
||||
std::unique_ptr<Acore::Asio::DeadlineTimer> _updateTimer;
|
||||
std::unique_ptr<boost::asio::steady_timer> _updateTimer;
|
||||
std::unique_ptr<Acore::Asio::Resolver> _resolver;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user