projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Do EncodeServerFinder 'disable' in a more sensible way.
[dcpomatic.git]
/
src
/
lib
/
encode_server_finder.cc
diff --git
a/src/lib/encode_server_finder.cc
b/src/lib/encode_server_finder.cc
index eebf404fafa9604116fb8cb0831b7458c7390e43..135a8bce8219539f676e37f18b3e05079f38b46c 100644
(file)
--- a/
src/lib/encode_server_finder.cc
+++ b/
src/lib/encode_server_finder.cc
@@
-43,8
+43,7
@@
using boost::weak_ptr;
EncodeServerFinder* EncodeServerFinder::_instance = 0;
EncodeServerFinder::EncodeServerFinder ()
EncodeServerFinder* EncodeServerFinder::_instance = 0;
EncodeServerFinder::EncodeServerFinder ()
- : _disabled (false)
- , _search_thread (0)
+ : _search_thread (0)
, _listen_thread (0)
, _stop (false)
{
, _listen_thread (0)
, _stop (false)
{
@@
-58,7
+57,14
@@
EncodeServerFinder::start ()
_listen_thread = new boost::thread (boost::bind (&EncodeServerFinder::listen_thread, this));
}
_listen_thread = new boost::thread (boost::bind (&EncodeServerFinder::listen_thread, this));
}
+
EncodeServerFinder::~EncodeServerFinder ()
EncodeServerFinder::~EncodeServerFinder ()
+{
+ stop ();
+}
+
+void
+EncodeServerFinder::stop ()
{
_stop = true;
{
_stop = true;
@@
-71,6
+77,8
@@
EncodeServerFinder::~EncodeServerFinder ()
_search_thread->join ();
}
}
_search_thread->join ();
}
}
+ delete _search_thread;
+ _search_thread = 0;
_listen_io_service.stop ();
if (_listen_thread) {
_listen_io_service.stop ();
if (_listen_thread) {
@@
-81,6
+89,11
@@
EncodeServerFinder::~EncodeServerFinder ()
_listen_thread->join ();
}
}
_listen_thread->join ();
}
}
+ delete _listen_thread;
+ _listen_thread = 0;
+
+ boost::mutex::scoped_lock lm (_servers_mutex);
+ _servers.clear ();
}
void
}
void