diff --git a/src/Application.cpp b/src/Application.cpp index 45adfccf43..c78427d7b2 100644 --- a/src/Application.cpp +++ b/src/Application.cpp @@ -35,8 +35,14 @@ DatabaseCon::~DatabaseCon() delete mDatabase; } +static void resetTimer(boost::asio::deadline_timer* timer) +{ // ugly workaround for Boost IO service weirdness + timer->expires_from_now(boost::posix_time::hours(24)); + timer->async_wait(boost::bind(resetTimer, timer)); +} + Application::Application() : - mUNL(mIOService), + mIOTimer(mIOService), mAuxTimer(mAuxService), mUNL(mIOService), mNetOps(mIOService, &mMasterLedger), mTempNodeCache(16384, 90), mHashedObjectStore(16384, 300), mSNTPClient(mAuxService), mRpcDB(NULL), mTxnDB(NULL), mLedgerDB(NULL), mWalletDB(NULL), mHashNodeDB(NULL), mNetNodeDB(NULL), @@ -44,6 +50,9 @@ Application::Application() : { RAND_bytes(mNonce256.begin(), mNonce256.size()); RAND_bytes(reinterpret_cast(&mNonceST), sizeof(mNonceST)); + + resetTimer(&mIOTimer); + resetTimer(&mAuxTimer); } extern const char *RpcDBInit[], *TxnDBInit[], *LedgerDBInit[], *WalletDBInit[], *HashNodeDBInit[], *NetNodeDBInit[]; diff --git a/src/Application.h b/src/Application.h index 6511d0f566..78fc2e425c 100644 --- a/src/Application.h +++ b/src/Application.h @@ -39,7 +39,8 @@ public: class Application { - boost::asio::io_service mIOService, mAuxService; + boost::asio::io_service mIOService, mAuxService; + boost::asio::deadline_timer mIOTimer, mAuxTimer; Wallet mWallet; UniqueNodeList mUNL;