summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-12-20 23:17:16 +0100
committerCarl Hetherington <cth@carlh.net>2020-12-22 02:37:53 +0100
commit191b9aece985643210dc6b2352b390cdfc386f4d (patch)
tree683ef5581bc872f30d5bbcb57ae05e557eec199d /src
parent883600f1e39a86338050bfdc3eaf01136d06d825 (diff)
Catch exceptions better during hints thread.
Diffstat (limited to 'src')
-rw-r--r--src/lib/hints.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/hints.cc b/src/lib/hints.cc
index 131548035..ffe6d8e73 100644
--- a/src/lib/hints.cc
+++ b/src/lib/hints.cc
@@ -390,7 +390,15 @@ Hints::thread ()
boost::filesystem::path dcp_dir = film->dir("hints") / dcpomatic::get_process_id();
boost::filesystem::remove_all (dcp_dir);
- _writer->finish (film->dir("hints") / dcpomatic::get_process_id());
+
+ try {
+ _writer->finish (film->dir("hints") / dcpomatic::get_process_id());
+ } catch (...) {
+ store_current ();
+ emit (bind(boost::ref(Finished)));
+ return;
+ }
+
dcp::DCP dcp (dcp_dir);
dcp.read ();
DCPOMATIC_ASSERT (dcp.cpls().size() == 1);