projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.
[dcpomatic.git]
/
src
/
lib
/
job.cc
diff --git
a/src/lib/job.cc
b/src/lib/job.cc
index 31a10a44bd6af2343ca4ddfa525ed3b4e35226ad..7be17141769c78fb22b0e4a669f8c911bfbbaaa1 100644
(file)
--- a/
src/lib/job.cc
+++ b/
src/lib/job.cc
@@
-37,7
+37,6
@@
using std::string;
using std::list;
using std::cout;
using std::string;
using std::list;
using std::cout;
-using std::stringstream;
using boost::shared_ptr;
Job::Job (shared_ptr<const Film> f)
using boost::shared_ptr;
Job::Job (shared_ptr<const Film> f)
@@
-232,8
+231,9
@@
Job::set_progress (float p, bool force)
_progress = p;
boost::this_thread::interruption_point ();
_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) {
}
if (ui_signaller) {
@@
-309,7
+309,7
@@
Job::status () const
pc = 99;
}
pc = 99;
}
-
strings
tream s;
+
SafeStringS
tream s;
if (!finished ()) {
s << pc << N_("%");
if (p >= 0 && t > 10 && r > 0) {
if (!finished ()) {
s << pc << N_("%");
if (p >= 0 && t > 10 && r > 0) {
@@
-351,6
+351,7
@@
Job::pause ()
{
if (running ()) {
set_state (PAUSED);
{
if (running ()) {
set_state (PAUSED);
+ _pause_changed.notify_all ();
}
}
}
}
@@
-359,5
+360,6
@@
Job::resume ()
{
if (paused ()) {
set_state (RUNNING);
{
if (paused ()) {
set_state (RUNNING);
+ _pause_changed.notify_all ();
}
}
}
}