mirror of
https://github.com/monero-project/monero.git
synced 2025-05-11 23:35:07 -04:00
threadpool: guard against exceptions in jobs, and armour plating
Those would, if uncaught, exit run and leave the waiter to wait indefinitely for the number of active jobs to reach 0
This commit is contained in:
parent
5d850dde99
commit
6a37da837e
8 changed files with 72 additions and 60 deletions
|
@ -521,14 +521,14 @@ bool load_txt_records_from_dns(std::vector<std::string> &good_records, const std
|
|||
// send all requests in parallel
|
||||
std::deque<bool> avail(dns_urls.size(), false), valid(dns_urls.size(), false);
|
||||
tools::threadpool& tpool = tools::threadpool::getInstance();
|
||||
tools::threadpool::waiter waiter;
|
||||
tools::threadpool::waiter waiter(tpool);
|
||||
for (size_t n = 0; n < dns_urls.size(); ++n)
|
||||
{
|
||||
tpool.submit(&waiter,[n, dns_urls, &records, &avail, &valid](){
|
||||
records[n] = tools::DNSResolver::instance().get_txt_record(dns_urls[n], avail[n], valid[n]);
|
||||
});
|
||||
}
|
||||
waiter.wait(&tpool);
|
||||
waiter.wait();
|
||||
|
||||
size_t cur_index = first_index;
|
||||
do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue