summaryrefslogtreecommitdiff
path: root/src/lib/job.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-10-25 14:47:43 +0100
committerCarl Hetherington <cth@carlh.net>2014-10-25 14:47:43 +0100
commitb6c780d3107557d452c6612d715d01e2be52dbda (patch)
tree3548fe3eef61f3b0145bb33a57a89f97bfa75f50 /src/lib/job.cc
parente725a6b4bce2a05275ee611965c62d6803f3bf7c (diff)
parent0dcbc398124f740e4fd7b552926f601a3e5c755e (diff)
Merge master.
Diffstat (limited to 'src/lib/job.cc')
-rw-r--r--src/lib/job.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lib/job.cc b/src/lib/job.cc
index 1d3cb73b6..7be171417 100644
--- a/src/lib/job.cc
+++ b/src/lib/job.cc
@@ -231,8 +231,9 @@ Job::set_progress (float p, bool force)
_progress = p;
boost::this_thread::interruption_point ();
- if (paused ()) {
- dcpomatic_sleep (1);
+ boost::mutex::scoped_lock lm2 (_state_mutex);
+ while (_state == PAUSED) {
+ _pause_changed.wait (lm2);
}
if (ui_signaller) {
@@ -350,6 +351,7 @@ Job::pause ()
{
if (running ()) {
set_state (PAUSED);
+ _pause_changed.notify_all ();
}
}
@@ -358,5 +360,6 @@ Job::resume ()
{
if (paused ()) {
set_state (RUNNING);
+ _pause_changed.notify_all ();
}
}