From: Martin Pool Date: Tue, 9 Apr 2002 04:33:32 +0000 (+0000) Subject: Rather than a loop subtracting 1e6 to convert usecs to secs/usecs, just X-Git-Tag: v2.5.6~177 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e681e8206641ec61d3ef8918f15351e8d84ccf4f;p=thirdparty%2Frsync.git Rather than a loop subtracting 1e6 to convert usecs to secs/usecs, just use div/mod. --- diff --git a/io.c b/io.c index 63df2504..66fd4c82 100644 --- a/io.c +++ b/io.c @@ -405,14 +405,14 @@ static void sleep_for_bwlimit(int bytes_written) if (!bwlimit) return; + + assert(bytes_written > 0); + assert(bwlimit > 0); - tv.tv_sec = 0; tv.tv_usec = bytes_written * 1000 / bwlimit; + tv.tv_sec = tv.tv_usec / 1000000; + tv.tv_usec = tv.tv_usec % 1000000; - while (tv.tv_usec > 1000000) { - tv.tv_sec++; - tv.tv_usec -= 1000000; - } select(0, NULL, NULL, NULL, tv); }