X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fbutler.cc;h=20180330e5f68d2a048402328ccc32d7da64fd7b;hb=001ba1644fc6aa54f91fcaaa62ae7e5de2313bc1;hp=6062b0f21f67a9e09ba7a818a8e12285a67f2cff;hpb=e97d48b043fe39ec22687555225d6b4b526a2172;p=dcpomatic.git diff --git a/src/lib/butler.cc b/src/lib/butler.cc index 6062b0f21..20180330e 100644 --- a/src/lib/butler.cc +++ b/src/lib/butler.cc @@ -83,9 +83,9 @@ Butler::Butler ( get_video() to be called in response to this signal. */ _player_change_connection = _player->Change.connect (bind (&Butler::player_change, this, _1), boost::signals2::at_front); - _thread = new boost::thread (bind (&Butler::thread, this)); + _thread = boost::thread (bind(&Butler::thread, this)); #ifdef DCPOMATIC_LINUX - pthread_setname_np (_thread->native_handle(), "butler"); + pthread_setname_np (_thread.native_handle(), "butler"); #endif /* Create some threads to do work on the PlayerVideos we are creating; at present this is used to @@ -110,13 +110,12 @@ Butler::~Butler () _prepare_pool.join_all (); _prepare_service.stop (); - _thread->interrupt (); + _thread.interrupt (); try { - _thread->join (); - } catch (boost::thread_interrupted& e) { - /* No problem */ + _thread.join (); + } catch (...) { + } - delete _thread; } /** Caller must hold a lock on _mutex */