From f95a5f2f50abc773c93d215a0d1647ad5619d6d3 Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Sat, 16 Nov 2013 16:21:41 +0100 Subject: [PATCH] Prints the total time used when processing ends. --- state.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/state.c b/state.c index b4ebe134..1a71950c 100644 --- a/state.c +++ b/state.c @@ -3524,12 +3524,23 @@ void state_progress_end(struct snapraid_state* state, block_off_t countpos, bloc fprintf(stdlog, "run:end\n"); fflush(stdlog); } else { + time_t now; + time_t elapsed; + unsigned countsize_MiB = (countsize + 1024*1024 - 1) / (1024*1024); - if (countmax) - printf("%u%% completed, %u MiB processed\n", countpos * 100 / countmax, countsize_MiB); - else + now = time(0); + + elapsed = now - state->progress_start - state->progress_subtract; + + if (countmax) { + printf("%u%% completed, %u MiB processed", countpos * 100 / countmax, countsize_MiB); + if (elapsed >= 60) + printf(" in %u:%02u\n", (unsigned)(elapsed / 3600), (unsigned)((elapsed % 3600) / 60)); + printf("\n"); + } else { printf("Nothing to do\n"); + } } }