Add object count stats for new IncomingPacket and UDPPacketBuffer pools if they are enabled. Add count stats for existing LLUDP pool.

This introduces a pull stat type in addition to the push stat type.
A pull stat takes a method on construction which knows how to update the stat on request.
In this way, special interfaces for pull stat collection are not necessary.
This commit is contained in:
Justin Clark-Casey (justincc)
2012-10-23 01:50:05 +01:00
parent 2206132ab9
commit 4578ff74fe
6 changed files with 153 additions and 14 deletions

View File

@@ -278,7 +278,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP
ThrottleRates = new ThrottleRates(configSource);
if (UsePools)
{
m_incomingPacketPool = new Pool<IncomingPacket>(() => new IncomingPacket(), 500);
StatsManager.RegisterStat(
new Stat(
"IncomingPacketPoolCount",
"Objects within incoming packet pool",
"The number of objects currently stored within the incoming packet pool",
"",
"clientstack",
"packetpool",
StatType.Pull,
stat => stat.Value = m_incomingPacketPool.Count,
StatVerbosity.Debug));
}
}
public void Start()