mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-07-20 02:03:07 +02:00
Drop upgrade-cancel callback registration for a generic "resumeable"
Instead of passing a StartShutdown reference all the way up from txdb, give ShowProgress a "resumeable" boolean, which is used to inform the user if the action will be resumed, but cancel is always allowed by just calling StartShutdown().
This commit is contained in:
@ -371,9 +371,9 @@ bool CCoinsViewDB::Upgrade() {
|
||||
int64_t count = 0;
|
||||
LogPrintf("Upgrading utxo-set database...\n");
|
||||
LogPrintf("[0%%]...");
|
||||
uiInterface.ShowProgress(_("Upgrading UTXO database"), 0, true);
|
||||
size_t batch_size = 1 << 24;
|
||||
CDBBatch batch(db);
|
||||
uiInterface.SetProgressBreakAction(StartShutdown);
|
||||
int reportDone = 0;
|
||||
std::pair<unsigned char, uint256> key;
|
||||
std::pair<unsigned char, uint256> prev_key = {DB_COINS, uint256()};
|
||||
@ -386,7 +386,7 @@ bool CCoinsViewDB::Upgrade() {
|
||||
if (count++ % 256 == 0) {
|
||||
uint32_t high = 0x100 * *key.second.begin() + *(key.second.begin() + 1);
|
||||
int percentageDone = (int)(high * 100.0 / 65536.0 + 0.5);
|
||||
uiInterface.ShowProgress(_("Upgrading UTXO database") + "\n"+ _("(press q to shutdown and continue later)") + "\n", percentageDone);
|
||||
uiInterface.ShowProgress(_("Upgrading UTXO database"), percentageDone, true);
|
||||
if (reportDone < percentageDone/10) {
|
||||
// report max. every 10% step
|
||||
LogPrintf("[%d%%]...", percentageDone);
|
||||
@ -420,7 +420,7 @@ bool CCoinsViewDB::Upgrade() {
|
||||
}
|
||||
db.WriteBatch(batch);
|
||||
db.CompactRange({DB_COINS, uint256()}, key);
|
||||
uiInterface.SetProgressBreakAction(std::function<void(void)>());
|
||||
uiInterface.ShowProgress("", 100, false);
|
||||
LogPrintf("[%s].\n", ShutdownRequested() ? "CANCELLED" : "DONE");
|
||||
return !ShutdownRequested();
|
||||
}
|
||||
|
Reference in New Issue
Block a user