mirror of
https://github.com/monero-project/monero.git
synced 2025-12-11 01:21:28 +09:00
Blockchain: cancel pop_blocks() operation on interupt
On SIGINT, `Blockchain::cancel()` is called, which sets `m_cancel` to `true`. This commit stops attempting to pop blocks from the chain once that flag is set. This should leave the blockchain in a well-define state, even if the `pop_blocks()` operation itself did not "complete".
This commit is contained in:
parent
6bb36309d6
commit
38bc62741b
@ -562,7 +562,7 @@ void Blockchain::pop_blocks(uint64_t nblocks)
|
|||||||
const uint64_t blockchain_height = m_db->height();
|
const uint64_t blockchain_height = m_db->height();
|
||||||
if (blockchain_height > 0)
|
if (blockchain_height > 0)
|
||||||
nblocks = std::min(nblocks, blockchain_height - 1);
|
nblocks = std::min(nblocks, blockchain_height - 1);
|
||||||
while (i < nblocks)
|
while (i < nblocks && !m_cancel.load())
|
||||||
{
|
{
|
||||||
pop_block_from_blockchain();
|
pop_block_from_blockchain();
|
||||||
++i;
|
++i;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user