d588620e70bf15da29cc242e4ae8d86977e8f36a from master; fix hang if you cancel a paused...
[dcpomatic.git] / src / lib / job.cc
index c4d93ddc14b733b5d913fa1411a3cddf0f76648d..286b38456a8c0b82891e67d8b698cfaf4fedde64 100644 (file)
@@ -238,6 +238,9 @@ Job::set_progress (float p, bool force)
                _pause_changed.wait (lm2);
        }
 
+       lm.unlock ();
+       lm2.unlock ();
+
        emit (boost::bind (boost::ref (Progress)));
 }
 
@@ -376,6 +379,10 @@ Job::cancel ()
                return;
        }
 
+       if (paused ()) {
+               resume ();
+       }
+
        _thread->interrupt ();
        _thread->join ();
 }