aboutsummaryrefslogtreecommitdiff
path: root/src/common/dns_utils.cpp
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2020-08-12 22:13:29 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2020-09-01 14:33:33 +0000
commit6a37da837e1c936200f8d71a142973cc60b17b32 (patch)
tree922c9eff10660a49a16249781b05e5b8e1b5fc97 /src/common/dns_utils.cpp
parentMerge pull request #6586 (diff)
downloadmonero-6a37da837e1c936200f8d71a142973cc60b17b32.tar.xz
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
Diffstat (limited to 'src/common/dns_utils.cpp')
-rw-r--r--src/common/dns_utils.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/common/dns_utils.cpp b/src/common/dns_utils.cpp
index c871177b1..4f4efcd81 100644
--- a/src/common/dns_utils.cpp
+++ b/src/common/dns_utils.cpp
@@ -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