X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fencode_server_finder.cc;h=6cdd8ce3cc11adb05062c9fd8fdc8744588e33b5;hb=372555641062f5c7c6e4a1d5f67cfaf12a2c6799;hp=1837101b580a550fca5f53ba979c4882efd6eed1;hpb=9106e6ed551b13e1b7c7ee2088d54ce0ae430bcf;p=dcpomatic.git diff --git a/src/lib/encode_server_finder.cc b/src/lib/encode_server_finder.cc index 1837101b5..6cdd8ce3c 100644 --- a/src/lib/encode_server_finder.cc +++ b/src/lib/encode_server_finder.cc @@ -149,10 +149,10 @@ try } /* Discard servers that we haven't seen for a while */ + bool removed = false; { boost::mutex::scoped_lock lm (_servers_mutex); - bool removed = false; list::iterator i = _servers.begin(); while (i != _servers.end()) { if (i->last_seen_seconds() > 2 * interval) { @@ -165,10 +165,10 @@ try ++i; } } + } - if (removed) { - emit (boost::bind (boost::ref (ServersListChanged))); - } + if (removed) { + emit (boost::bind (boost::ref (ServersListChanged))); } boost::mutex::scoped_lock lm (_search_condition_mutex); @@ -236,8 +236,10 @@ EncodeServerFinder::handle_accept (boost::system::error_code ec, shared_ptrset_seen (); } else { EncodeServerDescription sd (ip, xml->number_child("Threads"), xml->optional_number_child("Version").get_value_or(0)); - boost::mutex::scoped_lock lm (_servers_mutex); - _servers.push_back (sd); + { + boost::mutex::scoped_lock lm (_servers_mutex); + _servers.push_back (sd); + } emit (boost::bind (boost::ref (ServersListChanged))); }