|
|
@@ -1645,12 +1645,19 @@ bool AppInitMain() |
|
|
|
// Wait for genesis block to be processed |
|
|
|
{ |
|
|
|
WaitableLock lock(cs_GenesisWait); |
|
|
|
while (!fHaveGenesis) { |
|
|
|
condvar_GenesisWait.wait(lock); |
|
|
|
// We previously could hang here if StartShutdown() is called prior to |
|
|
|
// ThreadImport getting started, so instead we just wait on a timer to |
|
|
|
// check ShutdownRequested() regularly. |
|
|
|
while (!fHaveGenesis && !ShutdownRequested()) { |
|
|
|
condvar_GenesisWait.wait_for(lock, std::chrono::milliseconds(500)); |
|
|
|
} |
|
|
|
uiInterface.NotifyBlockTip.disconnect(BlockNotifyGenesisWait); |
|
|
|
} |
|
|
|
|
|
|
|
if (ShutdownRequested()) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
// ********************************************************* Step 11: start node |
|
|
|
|
|
|
|
int chain_active_height; |