summaryrefslogtreecommitdiff
path: root/src/lib/job.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-07-07 15:29:03 +0100
committerCarl Hetherington <cth@carlh.net>2016-07-07 15:29:03 +0100
commitfe4a806a8685e8f6932465e10d09723f75bfb1cb (patch)
tree25b81766a1235d1a192a1ec4ad4566a9d582c1dc /src/lib/job.cc
parentb5b200e3e8c4134e8fdc31f2d24dcb197e6fc741 (diff)
Fix confusion about elapsed time of total job vs sub-job.
Diffstat (limited to 'src/lib/job.cc')
-rw-r--r--src/lib/job.cc18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/lib/job.cc b/src/lib/job.cc
index 9d1b25867..b316cddf7 100644
--- a/src/lib/job.cc
+++ b/src/lib/job.cc
@@ -52,6 +52,7 @@ Job::Job (shared_ptr<const Film> film)
, _thread (0)
, _state (NEW)
, _start_time (0)
+ , _sub_start_time (0)
, _progress (0)
, _ran_for (0)
{
@@ -81,6 +82,7 @@ Job::start ()
{
set_state (RUNNING);
_start_time = time (0);
+ _sub_start_time = time (0);
_thread = new boost::thread (boost::bind (&Job::run_wrapper, this));
}
@@ -242,7 +244,7 @@ Job::set_state (State s)
_state = s;
if (_state == FINISHED_OK || _state == FINISHED_ERROR || _state == FINISHED_CANCELLED) {
- _ran_for = elapsed_time ();
+ _ran_for = time(0) - _start_time;
finished = true;
_sub_name.clear ();
}
@@ -255,13 +257,13 @@ Job::set_state (State s)
/** @return DCPTime (in seconds) that this sub-job has been running */
int
-Job::elapsed_time () const
+Job::elapsed_sub_time () const
{
- if (_start_time == 0) {
+ if (_sub_start_time == 0) {
return 0;
}
- return time (0) - _start_time;
+ return time (0) - _sub_start_time;
}
/** Set the progress of the current part of the job.
@@ -324,7 +326,7 @@ Job::sub (string n)
}
set_progress (0, true);
- _start_time = time (0);
+ _sub_start_time = time (0);
}
string
@@ -371,7 +373,7 @@ string
Job::status () const
{
optional<float> p = progress ();
- int const t = elapsed_time ();
+ int const t = elapsed_sub_time ();
int const r = remaining_time ();
SafeStringStream s;
@@ -428,10 +430,10 @@ int
Job::remaining_time () const
{
if (progress().get_value_or(0) == 0) {
- return elapsed_time ();
+ return elapsed_sub_time ();
}
- return elapsed_time() / progress().get() - elapsed_time();
+ return elapsed_sub_time() / progress().get() - elapsed_sub_time();
}
void