version 1.114, 2004/04/01 12:19:57 |
version 1.115, 2004/06/21 17:36:31 |
|
|
{ |
{ |
static struct timeval bwstart, bwend; |
static struct timeval bwstart, bwend; |
static int lamt, thresh = 16384; |
static int lamt, thresh = 16384; |
u_int64_t wait; |
u_int64_t waitlen; |
struct timespec ts, rm; |
struct timespec ts, rm; |
|
|
if (!timerisset(&bwstart)) { |
if (!timerisset(&bwstart)) { |
|
|
return; |
return; |
|
|
lamt *= 8; |
lamt *= 8; |
wait = (double)1000000L * lamt / limit_rate; |
waitlen = (double)1000000L * lamt / limit_rate; |
|
|
bwstart.tv_sec = wait / 1000000L; |
bwstart.tv_sec = waitlen / 1000000L; |
bwstart.tv_usec = wait % 1000000L; |
bwstart.tv_usec = waitlen % 1000000L; |
|
|
if (timercmp(&bwstart, &bwend, >)) { |
if (timercmp(&bwstart, &bwend, >)) { |
timersub(&bwstart, &bwend, &bwend); |
timersub(&bwstart, &bwend, &bwend); |