X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fencode_server.cc;h=5884df09aae9642ccea356b640a9d4491ef4fa3e;hp=e79f82b629e197d783f51a8201c05fc3316d6838;hb=f515b8daea9d28200be803bb64ff17e9f30343c4;hpb=5b1b70c86df7225a2a102bdde3b38ea591a6dcbb;ds=sidebyside diff --git a/src/lib/encode_server.cc b/src/lib/encode_server.cc index e79f82b62..5884df09a 100644 --- a/src/lib/encode_server.cc +++ b/src/lib/encode_server.cc @@ -87,12 +87,13 @@ EncodeServer::~EncodeServer () _full_condition.notify_all (); } - BOOST_FOREACH (boost::thread& i, _worker_threads) { + BOOST_FOREACH (boost::thread* i, _worker_threads) { try { - i.join (); + i->join (); } catch (...) { } + delete i; } { @@ -233,9 +234,10 @@ EncodeServer::run () } for (int i = 0; i < _num_threads; ++i) { - _worker_threads.push_back (thread(bind(&EncodeServer::worker_thread, this))); + boost::thread* t = new thread(bind(&EncodeServer::worker_thread, this)); + _worker_threads.push_back (t); #ifdef DCPOMATIC_LINUX - pthread_setname_np (_worker_threads.back().native_handle(), "encode-server-worker"); + pthread_setname_np (t->native_handle(), "encode-server-worker"); #endif }