Added ability to respond to signals during Block Loading stage.
This commit is contained in:
parent
ac4161e25d
commit
871c3557bf
2 changed files with 14 additions and 2 deletions
|
@ -529,7 +529,7 @@ bool CTxDB::LoadBlockIndex()
|
|||
// Unserialize
|
||||
string strType;
|
||||
ssKey >> strType;
|
||||
if (strType == "blockindex")
|
||||
if (strType == "blockindex" && !fRequestShutdown)
|
||||
{
|
||||
CDiskBlockIndex diskindex;
|
||||
ssValue >> diskindex;
|
||||
|
@ -556,11 +556,14 @@ bool CTxDB::LoadBlockIndex()
|
|||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
break; // if shutdown requested or finished loading block index
|
||||
}
|
||||
}
|
||||
pcursor->close();
|
||||
|
||||
if (fRequestShutdown)
|
||||
return true;
|
||||
|
||||
// Calculate bnChainWork
|
||||
vector<pair<int, CBlockIndex*> > vSortedByHeight;
|
||||
vSortedByHeight.reserve(mapBlockIndex.size());
|
||||
|
|
|
@ -353,6 +353,15 @@ bool AppInit2(int argc, char* argv[])
|
|||
nStart = GetTimeMillis();
|
||||
if (!LoadBlockIndex())
|
||||
strErrors << _("Error loading blkindex.dat") << "\n";
|
||||
|
||||
// as LoadBlockIndex can take several minutes, it's possible the user
|
||||
// requested to kill bitcoin-qt during the last operation. If so, exit.
|
||||
// As the program has not fully started yet, Shutdown() is possibly overkill.
|
||||
if (fRequestShutdown)
|
||||
{
|
||||
printf("Shutdown requested. Exiting.\n");
|
||||
return false;
|
||||
}
|
||||
printf(" block index %15"PRI64d"ms\n", GetTimeMillis() - nStart);
|
||||
|
||||
InitMessage(_("Loading wallet..."));
|
||||
|
|
Loading…
Reference in a new issue