aboutsummaryrefslogtreecommitdiff
path: root/miscutils
diff options
context:
space:
mode:
Diffstat (limited to 'miscutils')
-rw-r--r--miscutils/time.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/miscutils/time.c b/miscutils/time.c
index 578cb35ff..9b7db662a 100644
--- a/miscutils/time.c
+++ b/miscutils/time.c
@@ -180,7 +180,12 @@ static void summarize(const char *fmt, char **command, resource_t * resp)
180 vv_ms = (resp->ru.ru_utime.tv_sec + resp->ru.ru_stime.tv_sec) * 1000 180 vv_ms = (resp->ru.ru_utime.tv_sec + resp->ru.ru_stime.tv_sec) * 1000
181 + (resp->ru.ru_utime.tv_usec + resp->ru.ru_stime.tv_usec) / 1000; 181 + (resp->ru.ru_utime.tv_usec + resp->ru.ru_stime.tv_usec) / 1000;
182 182
183 cpu_ticks = vv_ms * TICKS_PER_SEC / 1000; 183#if (1000 / TICKS_PER_SEC) * TICKS_PER_SEC == 1000
184 /* 1000 is exactly divisible by TICKS_PER_SEC */
185 cpu_ticks = vv_ms / (1000 / TICKS_PER_SEC);
186#else
187 cpu_ticks = vv_ms * (unsigned long long)TICKS_PER_SEC / 1000;
188#endif
184 if (!cpu_ticks) cpu_ticks = 1; /* we divide by it, must be nonzero */ 189 if (!cpu_ticks) cpu_ticks = 1; /* we divide by it, must be nonzero */
185 190
186 /* putchar() != putc(stdout) in glibc! */ 191 /* putchar() != putc(stdout) in glibc! */