libbb: introduce and use xgettimeofday(), do not truncate 64-bit time_t in shells
function old new delta xgettimeofday - 11 +11 get_local_var_value 280 281 +1 svlogd_main 1323 1322 -1 change_epoch 67 66 -1 timestamp_and_log 461 458 -3 hwclock_main 301 298 -3 fmt_time_bernstein_25 135 132 -3 step_time 331 326 -5 script_main 1207 1202 -5 machtime 34 28 -6 curtime 61 54 -7 ts_main 423 415 -8 nmeter_main 761 751 -10 gettime1900d 67 46 -21 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/12 up/down: 12/-73) Total: -61 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@@ -952,11 +952,11 @@ int nmeter_main(int argc UNUSED_PARAM, char **argv)
|
||||
reset_outbuf();
|
||||
|
||||
if (G.delta >= 0) {
|
||||
gettimeofday(&G.tv, NULL);
|
||||
xgettimeofday(&G.tv);
|
||||
usleep(G.delta > 1000000 ? 1000000 : G.delta - G.tv.tv_usec % G.deltanz);
|
||||
}
|
||||
|
||||
gettimeofday(&G.start, NULL);
|
||||
xgettimeofday(&G.start);
|
||||
G.tv = G.start;
|
||||
while (1) {
|
||||
collect_info(first);
|
||||
@@ -971,7 +971,7 @@ int nmeter_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (G.delta >= 0) {
|
||||
int rem;
|
||||
// can be commented out, will sacrifice sleep time precision a bit
|
||||
gettimeofday(&G.tv, NULL);
|
||||
xgettimeofday(&G.tv);
|
||||
if (need_seconds)
|
||||
rem = G.delta - ((ullong)G.tv.tv_sec*1000000 + G.tv.tv_usec) % G.deltanz;
|
||||
else
|
||||
@@ -983,7 +983,7 @@ int nmeter_main(int argc UNUSED_PARAM, char **argv)
|
||||
}
|
||||
usleep(rem);
|
||||
}
|
||||
gettimeofday(&G.tv, NULL);
|
||||
xgettimeofday(&G.tv);
|
||||
}
|
||||
|
||||
/*return 0;*/
|
||||
|
||||
Reference in New Issue
Block a user