From 230b5e5d32759cc60c88696cee1615a29a6c46de Mon Sep 17 00:00:00 2001 From: Martin Boehm Date: Thu, 11 Apr 2019 14:57:39 +0200 Subject: [PATCH] Fix synchronization issue in mempool --- bchain/basemempool.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bchain/basemempool.go b/bchain/basemempool.go index 68c09331..ae585bcc 100644 --- a/bchain/basemempool.go +++ b/bchain/basemempool.go @@ -65,6 +65,7 @@ func (a MempoolTxidEntries) Less(i, j int) bool { return hi > hj } +// removeEntryFromMempool removes entry from mempool structs. The caller is responsible for locking! func (m *BaseMempool) removeEntryFromMempool(txid string, entry txEntry) { delete(m.txEntries, txid) for _, si := range entry.addrIndexes { @@ -87,9 +88,9 @@ func (m *BaseMempool) removeEntryFromMempool(txid string, entry txEntry) { // GetAllEntries returns all mempool entries sorted by fist seen time in descending order func (m *BaseMempool) GetAllEntries() MempoolTxidEntries { - entries := make(MempoolTxidEntries, len(m.txEntries)) i := 0 m.mux.Lock() + entries := make(MempoolTxidEntries, len(m.txEntries)) for txid, entry := range m.txEntries { entries[i] = MempoolTxidEntry{ Txid: txid,