X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=eta.c;h=8cf9ea25eb6127f675c5a16d4a4d02a9ecf6d596;hb=9158d2f7d9cea04a3f0cbe0817c697c0ba6e8b48;hp=0eca3be0e345ee6c797f1d9f86f1ccbb9f6cd783;hpb=74939e38e5164682a57cbe2dfdced09b35cd0259;p=fio.git diff --git a/eta.c b/eta.c index 0eca3be0..8cf9ea25 100644 --- a/eta.c +++ b/eta.c @@ -172,6 +172,7 @@ void print_thread_status(void) { unsigned long elapsed = mtime_since_genesis() / 1000; int i, nr_running, nr_pending, t_rate, m_rate, *eta_secs, eta_sec; + struct thread_data *td; char eta_str[32]; double perc = 0.0; @@ -182,9 +183,7 @@ void print_thread_status(void) memset(eta_secs, 0, thread_number * sizeof(int)); nr_pending = nr_running = t_rate = m_rate = 0; - for (i = 0; i < thread_number; i++) { - struct thread_data *td = &threads[i]; - + for_each_td(td, i) { if (td->runstate == TD_RUNNING || td->runstate == TD_VERIFYING|| td->runstate == TD_FSYNCING) { nr_running++; @@ -206,7 +205,7 @@ void print_thread_status(void) else eta_sec = 0; - for (i = 0; i < thread_number; i++) { + for_each_td(td, i) { if (exitall_on_terminate) { if (eta_secs[i] < eta_sec) eta_sec = eta_secs[i]; @@ -216,6 +215,8 @@ void print_thread_status(void) } } + free(eta_secs); + if (eta_sec != INT_MAX && elapsed) { perc = (double) elapsed / (double) (elapsed + eta_sec); eta_to_str(eta_str, eta_sec); @@ -233,7 +234,6 @@ void print_thread_status(void) } printf("\r"); fflush(stdout); - free(eta_secs); } void print_status_init(int thread_number)