Skip to content

Commit 1ce4cc5

Browse files
instagibbsstevenroose
authored andcommitted
Move MainchainRPCCheck to its own schedule, fix resolution
1 parent f084479 commit 1ce4cc5

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

src/init.cpp

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ static std::unique_ptr<ECCVerifyHandle> globalVerifyHandle;
146146

147147
static boost::thread_group threadGroup;
148148
static CScheduler scheduler;
149+
static CScheduler reverification_scheduler;
149150

150151
void Interrupt()
151152
{
@@ -1866,16 +1867,21 @@ bool AppInitMain()
18661867
SetRPCWarmupFinished();
18671868

18681869
// ELEMENTS:
1869-
CScheduler::Function f2 = boost::bind(&MainchainRPCCheck, false);
1870-
unsigned int check_rpc_every = gArgs.GetArg("-recheckpeginblockinterval", 120);
1871-
if (check_rpc_every) {
1872-
scheduler.scheduleEvery(f2, check_rpc_every);
1873-
}
18741870
uiInterface.InitMessage(_("Awaiting mainchain RPC warmup"));
18751871
if (!MainchainRPCCheck(true)) { //Initial check, fail immediately
18761872
return InitError(_("ERROR: elementsd is set to verify pegins but cannot get valid response from the mainchain daemon. Please check debug.log for more information."));
18771873
}
18781874

1875+
// Start the lightweight block re-evaluation scheduler thread
1876+
CScheduler::Function reevaluationLoop = std::bind(&CScheduler::serviceQueue, &reverification_scheduler);
1877+
threadGroup.create_thread(std::bind(&TraceThread<CScheduler::Function>, "reevaluation_scheduler", reevaluationLoop));
1878+
1879+
CScheduler::Function f2 = boost::bind(&MainchainRPCCheck, false);
1880+
unsigned int check_rpc_every = gArgs.GetArg("-recheckpeginblockinterval", 120) * 1000;
1881+
if (check_rpc_every) {
1882+
reverification_scheduler.scheduleEvery(f2, check_rpc_every);
1883+
}
1884+
18791885
uiInterface.InitMessage(_("Done loading"));
18801886

18811887
g_wallet_init_interface.Start(scheduler);

0 commit comments

Comments
 (0)