diff --git a/src/ripple/app/main/Application.cpp b/src/ripple/app/main/Application.cpp index db55d161ed..98aacbddb8 100644 --- a/src/ripple/app/main/Application.cpp +++ b/src/ripple/app/main/Application.cpp @@ -363,6 +363,7 @@ public: std::unique_ptr txQ_; DeadlineTimer m_sweepTimer; DeadlineTimer m_entropyTimer; + bool startTimers_; std::unique_ptr mTxnDB; std::unique_ptr mLedgerDB; @@ -510,6 +511,8 @@ public: , m_entropyTimer (this) + , startTimers_ (false) + , m_signals (get_io_service()) , checkSigs_(true) @@ -545,7 +548,7 @@ public: //-------------------------------------------------------------------------- bool setup() override; - void doStart() override; + void doStart(bool withTimers) override; void run() override; bool isShutdown() override; void signalStop() override; @@ -841,8 +844,11 @@ public: << "Application starting. Version is " << BuildInfo::getVersionString(); using namespace std::chrono_literals; - m_sweepTimer.setExpiration (10s); - m_entropyTimer.setRecurringExpiration (5min); + if(startTimers_) + { + m_sweepTimer.setExpiration (10s); + m_entropyTimer.setRecurringExpiration (5min); + } m_io_latency_sampler.start(); @@ -871,9 +877,11 @@ public: // things will happen. m_resolver->stop (); - m_sweepTimer.cancel (); - - m_entropyTimer.cancel (); + if(startTimers_) + { + m_sweepTimer.cancel (); + m_entropyTimer.cancel (); + } mValidations->flush (); @@ -1265,8 +1273,9 @@ bool ApplicationImp::setup() } void -ApplicationImp::doStart() +ApplicationImp::doStart(bool withTimers) { + startTimers_ = withTimers; prepare (); start (); } diff --git a/src/ripple/app/main/Application.h b/src/ripple/app/main/Application.h index 7f3189173b..a6033636cf 100644 --- a/src/ripple/app/main/Application.h +++ b/src/ripple/app/main/Application.h @@ -97,7 +97,7 @@ public: virtual ~Application () = default; virtual bool setup() = 0; - virtual void doStart() = 0; + virtual void doStart(bool withTimers) = 0; virtual void run() = 0; virtual bool isShutdown () = 0; virtual void signalStop () = 0; diff --git a/src/ripple/app/main/Main.cpp b/src/ripple/app/main/Main.cpp index 8312bbc602..6d2ae686a3 100644 --- a/src/ripple/app/main/Main.cpp +++ b/src/ripple/app/main/Main.cpp @@ -461,7 +461,7 @@ int run (int argc, char** argv) } // Start the server - app->doStart(); + app->doStart(true /*start timers*/); // Block until we get a stop RPC. app->run(); diff --git a/src/test/jtx/impl/Env.cpp b/src/test/jtx/impl/Env.cpp index 0227014e28..925a9b800b 100644 --- a/src/test/jtx/impl/Env.cpp +++ b/src/test/jtx/impl/Env.cpp @@ -143,7 +143,7 @@ Env::AppBundle::AppBundle(beast::unit_test::suite& suite, Throw ("Env::AppBundle: setup failed"); timeKeeper->set( app->getLedgerMaster().getClosedLedger()->info().closeTime); - app->doStart(); + app->doStart(false /*don't start timers*/); thread = std::thread( [&](){ app->run(); });