Name threads on Linux.
[dcpomatic.git] / src / lib / encode_server_finder.cc
index 135a8bce8219539f676e37f18b3e05079f38b46c..e87c55b718ff531f4d7d156e4020c4861ec64b79 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2013-2015 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2013-2018 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -25,7 +25,7 @@
 #include "cross.h"
 #include "encode_server_description.h"
 #include "dcpomatic_socket.h"
-#include "raw_convert.h"
+#include <dcp/raw_convert.h>
 #include <libcxml/cxml.h>
 #include <boost/lambda/lambda.hpp>
 #include <iostream>
@@ -39,6 +39,7 @@ using std::cout;
 using boost::shared_ptr;
 using boost::scoped_array;
 using boost::weak_ptr;
+using dcp::raw_convert;
 
 EncodeServerFinder* EncodeServerFinder::_instance = 0;
 
@@ -55,6 +56,10 @@ EncodeServerFinder::start ()
 {
        _search_thread = new boost::thread (boost::bind (&EncodeServerFinder::search_thread, this));
        _listen_thread = new boost::thread (boost::bind (&EncodeServerFinder::listen_thread, this));
+#ifdef DCPOMATIC_LINUX
+       pthread_setname_np (_search_thread->native_handle(), "encode-server-search");
+       pthread_setname_np (_listen_thread->native_handle(), "encode-server-listen");
+#endif
 }
 
 
@@ -117,7 +122,7 @@ try
                if (Config::instance()->use_any_servers ()) {
                        /* Broadcast to look for servers */
                        try {
-                               boost::asio::ip::udp::endpoint end_point (boost::asio::ip::address_v4::broadcast(), Config::instance()->server_port_base() + 1);
+                               boost::asio::ip::udp::endpoint end_point (boost::asio::ip::address_v4::broadcast(), HELLO_PORT);
                                socket.send_to (boost::asio::buffer (data.c_str(), data.size() + 1), end_point);
                        } catch (...) {
 
@@ -133,7 +138,7 @@ try
                        }
                        try {
                                boost::asio::ip::udp::resolver resolver (io_service);
-                               boost::asio::ip::udp::resolver::query query (*i, raw_convert<string> (Config::instance()->server_port_base() + 1));
+                               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 (...) {
@@ -156,7 +161,9 @@ try {
        using namespace boost::asio::ip;
 
        try {
-               _listen_acceptor.reset (new tcp::acceptor (_listen_io_service, tcp::endpoint (tcp::v4(), Config::instance()->server_port_base() + 1)));
+               _listen_acceptor.reset (
+                       new tcp::acceptor (_listen_io_service, tcp::endpoint (tcp::v4(), is_batch_converter ? BATCH_SERVER_PRESENCE_PORT : MAIN_SERVER_PRESENCE_PORT))
+                       );
        } catch (...) {
                boost::throw_exception (NetworkError (_("Could not listen for remote encode servers.  Perhaps another instance of DCP-o-matic is running.")));
        }