diff options
author | Wayne Davison <wayned@samba.org> | 2003-07-08 16:54:53 +0000 |
---|---|---|
committer | Wayne Davison <wayned@samba.org> | 2003-07-08 16:54:53 +0000 |
commit | 1c8162a921cbae803b3bf375fda4aa7916bcfc68 (patch) | |
tree | 3ad3ffa1a264afcf657481f8daa0d2f37de4a757 /progress.c | |
parent | 16417f8b9d1947f4efbe540ee6983feba2ebc21c (diff) | |
download | rsync-1c8162a921cbae803b3bf375fda4aa7916bcfc68.tar.gz rsync-1c8162a921cbae803b3bf375fda4aa7916bcfc68.tar.bz2 rsync-1c8162a921cbae803b3bf375fda4aa7916bcfc68.zip |
Optimized show_progress() to reduce the calls to gettimeofday() when
am_server is set. No need to check do_progress here anymore, since
we aren't called if do_progress isn't set.
Diffstat (limited to 'progress.c')
-rw-r--r-- | progress.c | 54 |
1 files changed, 29 insertions, 25 deletions
@@ -79,39 +79,43 @@ static void rprint_progress(OFF_T ofs, OFF_T size, struct timeval *now, void end_progress(OFF_T size) { - extern int do_progress, am_server; + extern int am_server; - if (do_progress && !am_server) { - struct timeval now; - gettimeofday(&now, NULL); - rprint_progress(size, size, &now, True); + if (!am_server) { + struct timeval now; + gettimeofday(&now, NULL); + rprint_progress(size, size, &now, True); } last_ofs = 0; - start_ofs = 0; - print_time.tv_sec = print_time.tv_usec = 0; - start_time.tv_sec = start_time.tv_usec = 0; + start_ofs = 0; + print_time.tv_sec = print_time.tv_usec = 0; + start_time.tv_sec = start_time.tv_usec = 0; } void show_progress(OFF_T ofs, OFF_T size) { - extern int do_progress, am_server; - struct timeval now; + extern int am_server; + struct timeval now; - gettimeofday(&now, NULL); - - if (!start_time.tv_sec && !start_time.tv_usec) { - start_time.tv_sec = now.tv_sec; - start_time.tv_usec = now.tv_usec; - start_ofs = ofs; - } + if (!start_time.tv_sec) { + gettimeofday(&now, NULL); + start_time.tv_sec = now.tv_sec; + start_time.tv_usec = now.tv_usec; + start_ofs = ofs; + if (am_server) + return; + } + else { + if (am_server) + return; + gettimeofday(&now, NULL); + } - if (do_progress - && !am_server - && ofs > last_ofs + 1000 - && msdiff(&print_time, &now) > 250) { - rprint_progress(ofs, size, &now, False); - last_ofs = ofs; - print_time.tv_sec = now.tv_sec; - print_time.tv_usec = now.tv_usec; + if (ofs > last_ofs + 1000 + && msdiff(&print_time, &now) > 250) { + rprint_progress(ofs, size, &now, False); + last_ofs = ofs; + print_time.tv_sec = now.tv_sec; + print_time.tv_usec = now.tv_usec; } } |