From 3c61abbbc847d725f30d169278d84655571407c1 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Mon, 6 Apr 2020 19:06:29 -0700 Subject: [PATCH] Do not clear validationinterface entries being executed The previous code for MainSignalsInstance::Clear would decrement the reference count of every interface, including ones that were already Unregister()ed but still being executed. --- src/validationinterface.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/validationinterface.cpp b/src/validationinterface.cpp index c06647cb0d3..11000774c09 100644 --- a/src/validationinterface.cpp +++ b/src/validationinterface.cpp @@ -67,8 +67,8 @@ public: void Clear() { LOCK(m_mutex); - for (auto it = m_list.begin(); it != m_list.end();) { - it = --it->count ? std::next(it) : m_list.erase(it); + for (const auto& entry : m_map) { + if (!--entry.second->count) m_list.erase(entry.second); } m_map.clear(); }