diff options
author | Axel Beckert <abe@deuxchevaux.org> | 2014-08-11 17:39:42 +0200 |
---|---|---|
committer | Axel Beckert <abe@deuxchevaux.org> | 2014-08-11 17:39:42 +0200 |
commit | 382c26acfc62a56744ab9eb603efc56130764fd3 (patch) | |
tree | 1b7cb9d3e372481007fc4546e7d06ce5bb1bc104 /Src/jobs.c | |
parent | 73508e345b4925f33b7f652aba9bd313169e5ac2 (diff) | |
parent | f8ae47f29b766dc0330b19d7fdb35859d6aab930 (diff) | |
download | zsh-382c26acfc62a56744ab9eb603efc56130764fd3.tar.gz zsh-382c26acfc62a56744ab9eb603efc56130764fd3.zip |
New upstream release candidate: Merge branch 'upstream' into debian
Diffstat (limited to 'Src/jobs.c')
-rw-r--r-- | Src/jobs.c | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/Src/jobs.c b/Src/jobs.c index 871946598..c4a0707d4 100644 --- a/Src/jobs.c +++ b/Src/jobs.c @@ -618,13 +618,11 @@ setprevjob(void) } /**/ -#ifndef HAVE_GETRUSAGE -static long clktck = 0; - -/**/ -static void -set_clktck(void) +long +get_clktck(void) { + static long clktck; + #ifdef _SC_CLK_TCK if (!clktck) /* fetch clock ticks per second from * @@ -646,9 +644,9 @@ set_clktck(void) # endif # endif #endif + + return clktck; } -/**/ -#endif /**/ static void @@ -698,11 +696,13 @@ printtime(struct timeval *real, child_times_t *ti, char *desc) percent = 100.0 * total_time / (real->tv_sec + real->tv_usec / 1000000.0); #else - set_clktck(); - user_time = ti->ut / (double) clktck; - system_time = ti->st / (double) clktck; - percent = 100.0 * (ti->ut + ti->st) - / (clktck * real->tv_sec + clktck * real->tv_usec / 1000000.0); + { + long clktck = get_clktck(); + user_time = ti->ut / (double) clktck; + system_time = ti->st / (double) clktck; + percent = 100.0 * (ti->ut + ti->st) + / (clktck * real->tv_sec + clktck * real->tv_usec / 1000000.0); + } #endif queue_signals(); @@ -910,8 +910,10 @@ should_report_time(Job j) reporttime--; return reporttime <= 0; #else - set_clktck(); - return ((j->procs->ti.ut + j->procs->ti.st) / clktck >= reporttime); + { + clktck = get_clktck(); + return ((j->procs->ti.ut + j->procs->ti.st) / clktck >= reporttime); + } #endif } |