Stop threads at the start of their object's destruction in all Job cases.
[dcpomatic.git] / src / lib / check_content_change_job.cc
index 2bc562f57730339bce035be957368f7a29e8d8b2..1df3bc9cda1f945a15e87c41091214a3a1dc14fa 100644 (file)
@@ -42,6 +42,11 @@ CheckContentChangeJob::CheckContentChangeJob (shared_ptr<const Film> film, share
 
 }
 
+CheckContentChangeJob::~CheckContentChangeJob ()
+{
+       stop_thread ();
+}
+
 string
 CheckContentChangeJob::name () const
 {
@@ -103,6 +108,11 @@ CheckContentChangeJob::run ()
                JobManager::instance()->add (_following);
        }
 
+       /* Only set this job as finished once we have added the following job, otherwise I think
+          it's possible that the tests will sporadically fail if they check for all jobs being
+          complete in the gap between this one finishing and _following being added.
+       */
+
        set_progress (1);
        set_state (FINISHED_OK);
 }