Add some possibly-useful markers for debugging threads from coredumps.
[dcpomatic.git] / src / lib / encode_server_finder.cc
index 7297734ecf892c9e9051d6fcdd20c4edba383fc9..2fab210c94838fe03e53a77ebea5ab0efcb87f87 100644 (file)
@@ -27,6 +27,7 @@
 #include "dcpomatic_socket.h"
 #include <dcp/raw_convert.h>
 #include <libcxml/cxml.h>
+#include <boost/bind/placeholders.hpp>
 #include <boost/lambda/lambda.hpp>
 #include <iostream>
 
@@ -36,10 +37,13 @@ using std::string;
 using std::list;
 using std::vector;
 using std::cout;
-using boost::shared_ptr;
+using std::shared_ptr;
 using boost::scoped_array;
-using boost::weak_ptr;
+using std::weak_ptr;
 using boost::optional;
+#if BOOST_VERSION >= 106100
+using namespace boost::placeholders;
+#endif
 using dcp::raw_convert;
 
 EncodeServerFinder* EncodeServerFinder::_instance = 0;
@@ -92,6 +96,8 @@ void
 EncodeServerFinder::search_thread ()
 try
 {
+       start_of_thread ("EncodeServerFinder-search");
+
        boost::system::error_code error;
        boost::asio::io_service io_service;
        boost::asio::ip::udp::socket socket (io_service);
@@ -118,15 +124,10 @@ try
                }
 
                /* Query our `definite' servers (if there are any) */
-               vector<string> servers = Config::instance()->servers ();
-               for (vector<string>::const_iterator i = servers.begin(); i != servers.end(); ++i) {
-                       if (server_found (*i)) {
-                               /* Don't bother asking a server that we already know about */
-                               continue;
-                       }
+               for (auto const& i: Config::instance()->servers()) {
                        try {
                                boost::asio::ip::udp::resolver resolver (io_service);
-                               boost::asio::ip::udp::resolver::query query (*i, raw_convert<string> (HELLO_PORT));
+                               boost::asio::ip::udp::resolver::query query (i, raw_convert<string> (HELLO_PORT));
                                boost::asio::ip::udp::endpoint end_point (*resolver.resolve (query));
                                socket.send_to (boost::asio::buffer (data.c_str(), data.size() + 1), end_point);
                        } catch (...) {
@@ -169,6 +170,8 @@ catch (...)
 void
 EncodeServerFinder::listen_thread ()
 try {
+       start_of_thread ("EncodeServerFinder-listen");
+
        using namespace boost::asio::ip;
 
        try {