From f8763f83bbc962e89722e184f0d76d14afb37131 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vitor=20Naz=C3=A1rio=20Coelho?= Date: Fri, 18 Oct 2019 05:04:32 -0300 Subject: [PATCH 1/2] Ensure txs are cleared before Blockchain actor --- neo/Ledger/MemoryPool.cs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/neo/Ledger/MemoryPool.cs b/neo/Ledger/MemoryPool.cs index 10ee5f9d0b..3e33dd4570 100644 --- a/neo/Ledger/MemoryPool.cs +++ b/neo/Ledger/MemoryPool.cs @@ -366,10 +366,17 @@ internal void UpdatePoolForBlockPersisted(Block block, Snapshot snapshot) tx.Add(item.Tx); if (tx.Count > 0) - _system.Blockchain.Tell(tx.ToArray(), ActorRefs.NoSender); - - _unverifiedTransactions.Clear(); - _unverifiedSortedTransactions.Clear(); + { + Transaction[] txsToReverify = tx.ToArray(); + _unverifiedTransactions.Clear(); + _unverifiedSortedTransactions.Clear(); + _system.Blockchain.Tell(txsToReverify, ActorRefs.NoSender); + } + else + { + _unverifiedTransactions.Clear(); + _unverifiedSortedTransactions.Clear(); + } } } finally From cb3868e1d70acd9a2ed47f3f167fd714b4e226fb Mon Sep 17 00:00:00 2001 From: erikzhang Date: Fri, 18 Oct 2019 17:05:06 +0800 Subject: [PATCH 2/2] Simplify --- neo/Ledger/MemoryPool.cs | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/neo/Ledger/MemoryPool.cs b/neo/Ledger/MemoryPool.cs index 3e33dd4570..f31e07e56c 100644 --- a/neo/Ledger/MemoryPool.cs +++ b/neo/Ledger/MemoryPool.cs @@ -365,18 +365,11 @@ internal void UpdatePoolForBlockPersisted(Block block, Snapshot snapshot) if (item.Tx.FeePerByte >= _feePerByte) tx.Add(item.Tx); + _unverifiedTransactions.Clear(); + _unverifiedSortedTransactions.Clear(); + if (tx.Count > 0) - { - Transaction[] txsToReverify = tx.ToArray(); - _unverifiedTransactions.Clear(); - _unverifiedSortedTransactions.Clear(); - _system.Blockchain.Tell(txsToReverify, ActorRefs.NoSender); - } - else - { - _unverifiedTransactions.Clear(); - _unverifiedSortedTransactions.Clear(); - } + _system.Blockchain.Tell(tx.ToArray(), ActorRefs.NoSender); } } finally