diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-07-07 15:29:03 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-07-07 15:29:03 +0100 |
| commit | fe4a806a8685e8f6932465e10d09723f75bfb1cb (patch) | |
| tree | 25b81766a1235d1a192a1ec4ad4566a9d582c1dc /src/lib/job.cc | |
| parent | b5b200e3e8c4134e8fdc31f2d24dcb197e6fc741 (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.cc | 18 |
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 |
