From 836669d276c1efda3f2805b17f0488a12bf3e85b Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sat, 29 Oct 2016 13:31:53 +0100 Subject: [PATCH] ringct: always shutdown the boost io service Even if no worker threads were started, it needs shutting down or it will cause an invalid access in the io service thread --- src/ringct/rctSigs.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ringct/rctSigs.cpp b/src/ringct/rctSigs.cpp index f7ea3729d..86d98fca2 100644 --- a/src/ringct/rctSigs.cpp +++ b/src/ringct/rctSigs.cpp @@ -772,7 +772,7 @@ namespace rct { threads = std::min(threads, rv.outPk.size()); for (size_t i = 0; i < threads; ++i) threadpool.create_thread(boost::bind(&boost::asio::io_service::run, &ioservice)); - bool ioservice_active = threads > 1; + bool ioservice_active = true; std::deque results(rv.outPk.size(), false); epee::misc_utils::auto_scope_leave_caller ioservice_killer = epee::misc_utils::create_scope_leave_handler([&]() { KILL_IOSERVICE(); }); @@ -838,7 +838,7 @@ namespace rct { threads = std::min(threads, rv.outPk.size()); for (size_t i = 0; i < threads; ++i) threadpool.create_thread(boost::bind(&boost::asio::io_service::run, &ioservice)); - bool ioservice_active = threads > 1; + bool ioservice_active = true; std::deque results(rv.outPk.size(), false); epee::misc_utils::auto_scope_leave_caller ioservice_killer = epee::misc_utils::create_scope_leave_handler([&]() { KILL_IOSERVICE(); }); @@ -880,7 +880,7 @@ namespace rct { threads = std::min(threads, rv.mixRing.size()); for (size_t i = 0; i < threads; ++i) threadpool.create_thread(boost::bind(&boost::asio::io_service::run, &ioservice)); - bool ioservice_active = threads > 1; + bool ioservice_active = true; std::deque results(rv.mixRing.size(), false); epee::misc_utils::auto_scope_leave_caller ioservice_killer = epee::misc_utils::create_scope_leave_handler([&]() { KILL_IOSERVICE(); });