diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/butler.cc | 2 | ||||
| -rw-r--r-- | src/wx/film_viewer.cc | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/butler.cc b/src/lib/butler.cc index 32d607c5d..b84dbc024 100644 --- a/src/lib/butler.cc +++ b/src/lib/butler.cc @@ -107,6 +107,8 @@ try /* The butler thread is being terminated */ } catch (...) { store_current (); + _finished = true; + _arrived.notify_all (); } pair<shared_ptr<PlayerVideo>, DCPTime> diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index 37f999632..a0cc25ab9 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -258,6 +258,8 @@ FilmViewer::refresh_panel () void FilmViewer::get () { + DCPOMATIC_ASSERT (_butler); + pair<shared_ptr<PlayerVideo>, DCPTime> video; do { video = _butler->get_video (); @@ -266,6 +268,8 @@ FilmViewer::get () ((_left_eye->GetValue() && video.first->eyes() == EYES_RIGHT) || (_right_eye->GetValue() && video.first->eyes() == EYES_LEFT)) ); + _butler->rethrow (); + if (!video.first) { _frame.reset (); refresh_panel (); |
