diff options
Diffstat (limited to 'src/lib/butler.cc')
| -rw-r--r-- | src/lib/butler.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/lib/butler.cc b/src/lib/butler.cc index 444090fd4..cf39945b6 100644 --- a/src/lib/butler.cc +++ b/src/lib/butler.cc @@ -268,7 +268,8 @@ Butler::seek_unlocked (DCPTime position, bool accurate) } void -Butler::prepare (weak_ptr<PlayerVideo> weak_video) const +Butler::prepare (weak_ptr<PlayerVideo> weak_video) +try { shared_ptr<PlayerVideo> video = weak_video.lock (); /* If the weak_ptr cannot be locked the video obviously no longer requires any work */ @@ -278,6 +279,12 @@ Butler::prepare (weak_ptr<PlayerVideo> weak_video) const LOG_TIMING("finish-prepare in %1", thread_id()); } } +catch (...) +{ + store_current (); + boost::mutex::scoped_lock lm (_mutex); + _died = true; +} void Butler::video (shared_ptr<PlayerVideo> video, DCPTime time) |
