Add a concept of debt to RateLimiter, save a bit of RAM.
This commit is contained in:
parent
3af55f4423
commit
6a24ac4f00
4 changed files with 58 additions and 34 deletions
|
@ -440,10 +440,10 @@ public:
|
|||
std::map<Address,RateLimiter>::iterator rl(_multicastRateLimiters.find(addr));
|
||||
if (rl == _multicastRateLimiters.end()) {
|
||||
RateLimiter &newrl = _multicastRateLimiters[addr];
|
||||
newrl.init(ZT_MULTICAST_DEFAULT_BYTES_PER_SECOND,ZT_MULTICAST_DEFAULT_RATE_PRELOAD,ZT_MULTICAST_DEFAULT_RATE_MAX);
|
||||
return newrl.gate((double)bytes);
|
||||
newrl.init(ZT_MULTICAST_DEFAULT_RATE_PRELOAD);
|
||||
return newrl.gate(_rlLimit,(double)bytes);
|
||||
}
|
||||
return rl->second.gate((double)bytes);
|
||||
return rl->second.gate(_rlLimit,(double)bytes);
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -452,6 +452,9 @@ private:
|
|||
|
||||
const RuntimeEnvironment *_r;
|
||||
|
||||
// Rate limits for this network
|
||||
RateLimiter::Limit _rlLimit;
|
||||
|
||||
// Tap and tap multicast memberships
|
||||
EthernetTap *_tap;
|
||||
std::set<MulticastGroup> _multicastGroups;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue