aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core/cryptonote_core.cpp
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2020-09-03 12:25:59 -0500
committerluigi1111 <luigi1111w@gmail.com>2020-09-03 12:25:59 -0500
commitee0b02d0dbdafebd28aa535baae086f8d481d191 (patch)
tree7c188abaf0956567f56a6c44cf3adf0b397823f6 /src/cryptonote_core/cryptonote_core.cpp
parent2d8a197b9163c2fc3f3da8fddee7c6a1d30fd4ac (diff)
parent6a37da837e1c936200f8d71a142973cc60b17b32 (diff)
downloadmonzero-core-ee0b02d0dbdafebd28aa535baae086f8d481d191.tar.gz
monzero-core-ee0b02d0dbdafebd28aa535baae086f8d481d191.tar.xz
monzero-core-ee0b02d0dbdafebd28aa535baae086f8d481d191.zip
Merge pull request #6757
6a37da8 threadpool: guard against exceptions in jobs, and armour plating (moneromooo-monero)
Diffstat (limited to 'src/cryptonote_core/cryptonote_core.cpp')
-rw-r--r--src/cryptonote_core/cryptonote_core.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/cryptonote_core/cryptonote_core.cpp b/src/cryptonote_core/cryptonote_core.cpp
index 474362ed0..894071924 100644
--- a/src/cryptonote_core/cryptonote_core.cpp
+++ b/src/cryptonote_core/cryptonote_core.cpp
@@ -985,7 +985,7 @@ namespace cryptonote
CRITICAL_REGION_LOCAL(m_incoming_tx_lock);
tools::threadpool& tpool = tools::threadpool::getInstance();
- tools::threadpool::waiter waiter;
+ tools::threadpool::waiter waiter(tpool);
epee::span<tx_blob_entry>::const_iterator it = tx_blobs.begin();
for (size_t i = 0; i < tx_blobs.size(); i++, ++it) {
tpool.submit(&waiter, [&, i, it] {
@@ -1001,7 +1001,8 @@ namespace cryptonote
}
});
}
- waiter.wait(&tpool);
+ if (!waiter.wait())
+ return false;
it = tx_blobs.begin();
std::vector<bool> already_have(tx_blobs.size(), false);
for (size_t i = 0; i < tx_blobs.size(); i++, ++it) {
@@ -1033,7 +1034,8 @@ namespace cryptonote
});
}
}
- waiter.wait(&tpool);
+ if (!waiter.wait())
+ return false;
std::vector<tx_verification_batch_info> tx_info;
tx_info.reserve(tx_blobs.size());