diff options
| author | luigi1111 <luigi1111w@gmail.com> | 2020-09-03 12:25:59 -0500 |
|---|---|---|
| committer | luigi1111 <luigi1111w@gmail.com> | 2020-09-03 12:25:59 -0500 |
| commit | ee0b02d0dbdafebd28aa535baae086f8d481d191 (patch) | |
| tree | 7c188abaf0956567f56a6c44cf3adf0b397823f6 /src/cryptonote_core/cryptonote_core.cpp | |
| parent | 2d8a197b9163c2fc3f3da8fddee7c6a1d30fd4ac (diff) | |
| parent | 6a37da837e1c936200f8d71a142973cc60b17b32 (diff) | |
| download | monzero-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.cpp | 8 |
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()); |
