diff options
author | Howard Chu <hyc@symas.com> | 2019-03-17 15:39:15 +0000 |
---|---|---|
committer | Howard Chu <hyc@symas.com> | 2019-03-17 15:39:15 +0000 |
commit | 8a97563a932a3bff17cf4c04a58608044a3f486a (patch) | |
tree | 4aff1beec1b3bee8e574802b64f69e8eac0cc9e2 | |
parent | Merge pull request #5232 (diff) | |
download | monero-8a97563a932a3bff17cf4c04a58608044a3f486a.tar.xz |
Use threadpool instead of new threads for DNS queries
-rw-r--r-- | src/common/dns_utils.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/common/dns_utils.cpp b/src/common/dns_utils.cpp index 417b5b4ac..d1c59fab7 100644 --- a/src/common/dns_utils.cpp +++ b/src/common/dns_utils.cpp @@ -32,9 +32,9 @@ #include <stdlib.h> #include "include_base_utils.h" +#include "common/threadpool.h" #include <random> #include <boost/thread/mutex.hpp> -#include <boost/thread/thread.hpp> #include <boost/algorithm/string/join.hpp> #include <boost/optional.hpp> using namespace epee; @@ -496,16 +496,16 @@ bool load_txt_records_from_dns(std::vector<std::string> &good_records, const std size_t first_index = dis(gen); // send all requests in parallel - std::vector<boost::thread> threads(dns_urls.size()); std::deque<bool> avail(dns_urls.size(), false), valid(dns_urls.size(), false); + tools::threadpool& tpool = tools::threadpool::getInstance(); + tools::threadpool::waiter waiter; for (size_t n = 0; n < dns_urls.size(); ++n) { - threads[n] = boost::thread([n, dns_urls, &records, &avail, &valid](){ + tpool.submit(&waiter,[n, dns_urls, &records, &avail, &valid](){ records[n] = tools::DNSResolver::instance().get_txt_record(dns_urls[n], avail[n], valid[n]); }); } - for (size_t n = 0; n < dns_urls.size(); ++n) - threads[n].join(); + waiter.wait(&tpool); size_t cur_index = first_index; do |