From e681e8206641ec61d3ef8918f15351e8d84ccf4f Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Tue, 9 Apr 2002 04:33:32 +0000 Subject: [PATCH] Rather than a loop subtracting 1e6 to convert usecs to secs/usecs, just use div/mod. --- io.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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; - - tv.tv_sec = 0; - tv.tv_usec = bytes_written * 1000 / bwlimit; - while (tv.tv_usec > 1000000) { - tv.tv_sec++; - tv.tv_usec -= 1000000; - } + assert(bytes_written > 0); + assert(bwlimit > 0); + + tv.tv_usec = bytes_written * 1000 / bwlimit; + tv.tv_sec = tv.tv_usec / 1000000; + tv.tv_usec = tv.tv_usec % 1000000; + select(0, NULL, NULL, NULL, tv); }