diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 7b90239d12..b5e2872f33 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -1389,30 +1389,30 @@ namespace OpenSim.Framework
return null;
}
- #endregion FireAndForget Threading Pattern
- ///
- /// Environment.TickCount is an int but it counts all 32 bits so it goes positive
- /// and negative every 24.9 days. This trims down TickCount so it doesn't wrap
- /// for the callers.
- /// This trims it to a 12 day interval so don't let your frame time get too long.
- ///
- ///
- public static Int32 EnvironmentTickCount()
- {
- return Environment.TickCount & EnvironmentTickCountMask;
- }
- const Int32 EnvironmentTickCountMask = 0x3fffffff;
-
- ///
- /// Environment.TickCount is an int but it counts all 32 bits so it goes positive
- /// and negative every 24.9 days. Subtracts the passed value (previously fetched by
- /// 'EnvironmentTickCount()') and accounts for any wrapping.
- ///
- /// subtraction of passed prevValue from current Environment.TickCount
- public static Int32 EnvironmentTickCountSubtract(Int32 prevValue)
- {
- Int32 diff = EnvironmentTickCount() - prevValue;
- return (diff >= 0) ? diff : (diff + EnvironmentTickCountMask + 1);
+ #endregion FireAndForget Threading Pattern
+ ///
+ /// Environment.TickCount is an int but it counts all 32 bits so it goes positive
+ /// and negative every 24.9 days. This trims down TickCount so it doesn't wrap
+ /// for the callers.
+ /// This trims it to a 12 day interval so don't let your frame time get too long.
+ ///
+ ///
+ public static Int32 EnvironmentTickCount()
+ {
+ return Environment.TickCount & EnvironmentTickCountMask;
+ }
+ const Int32 EnvironmentTickCountMask = 0x3fffffff;
+
+ ///
+ /// Environment.TickCount is an int but it counts all 32 bits so it goes positive
+ /// and negative every 24.9 days. Subtracts the passed value (previously fetched by
+ /// 'EnvironmentTickCount()') and accounts for any wrapping.
+ ///
+ /// subtraction of passed prevValue from current Environment.TickCount
+ public static Int32 EnvironmentTickCountSubtract(Int32 prevValue)
+ {
+ Int32 diff = EnvironmentTickCount() - prevValue;
+ return (diff >= 0) ? diff : (diff + EnvironmentTickCountMask + 1);
}
}
}
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs
index 1e5f15a3b2..55d9c9cd47 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
@@ -430,7 +430,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// Send the packet
m_udpServer.SendPacketFinal(nextPacket);
m_nextPackets[i] = null;
- packetSent = true;
+ packetSent = true;
this.PacketsSent++;
}
}
diff --git a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
index b031f61c4d..50624a13bb 100644
--- a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
+++ b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
@@ -448,5 +448,11 @@ namespace OpenSim.Region.Framework.Scenes.Animation
SendAnimPack(animIDs, sequenceNums, objectIDs);
}
+
+ public void Close()
+ {
+ m_animations = null;
+ m_scenePresence = null;
+ }
}
}
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 681291464a..e55acfe90b 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -790,37 +790,13 @@ namespace OpenSim.Region.Framework.Scenes
///
public void SendPrimUpdates()
{
- m_perfMonMS = EnvironmentTickCount();
+ m_perfMonMS = Util.EnvironmentTickCount();
m_sceneViewer.SendPrimUpdates();
- m_scene.StatsReporter.AddAgentTime(EnvironmentTickCountSubtract(m_perfMonMS));
+ m_scene.StatsReporter.AddAgentTime(Util.EnvironmentTickCountSubtract(m_perfMonMS));
}
- ///
- /// Environment.TickCount is an int but it counts all 32 bits so it goes positive
- /// and negative every 24.9 days. This trims down TickCount so it doesn't wrap
- /// for the callers.
- /// This trims it to a 12 day interval so don't let your frame time get too long.
- ///
- ///
- const Int32 EnvironmentTickCountMask = 0x3fffffff;
- private static Int32 EnvironmentTickCount() {
- return Environment.TickCount & EnvironmentTickCountMask;
- }
-
- ///
- /// Environment.TickCount is an int but it counts all 32 bits so it goes positive
- /// and negative every 24.9 days. Subtracts the passed value (previously fetched by
- /// 'EnvironmentTickCount()') and accounts for any wrapping.
- ///
- /// subtraction of passed prevValue from current Environment.TickCount
- private static Int32 EnvironmentTickCountSubtract(Int32 prevValue) {
- Int32 diff = EnvironmentTickCount() - prevValue;
- return (diff >= 0) ? diff : (diff + EnvironmentTickCountMask + 1);
- }
-
-
#region Status Methods
///
@@ -1209,7 +1185,7 @@ namespace OpenSim.Region.Framework.Scenes
// return;
//}
- m_perfMonMS = EnvironmentTickCount();
+ m_perfMonMS = Util.EnvironmentTickCount();
++m_movementUpdateCount;
if (m_movementUpdateCount < 1)
@@ -1539,7 +1515,7 @@ namespace OpenSim.Region.Framework.Scenes
m_scene.EventManager.TriggerOnClientMovement(this);
- m_scene.StatsReporter.AddAgentTime(EnvironmentTickCountSubtract(m_perfMonMS));
+ m_scene.StatsReporter.AddAgentTime(Util.EnvironmentTickCountSubtract(m_perfMonMS));
}
public void DoAutoPilot(uint not_used, Vector3 Pos, IClientAPI remote_client)
@@ -2057,7 +2033,7 @@ namespace OpenSim.Region.Framework.Scenes
return;
}
- m_perfMonMS = EnvironmentTickCount();
+ m_perfMonMS = Util.EnvironmentTickCount();
Rotation = rotation;
Vector3 direc = vec * rotation;
@@ -2099,7 +2075,7 @@ namespace OpenSim.Region.Framework.Scenes
// TODO: Add the force instead of only setting it to support multiple forces per frame?
m_forceToApply = direc;
m_isNudging = Nudging;
- m_scene.StatsReporter.AddAgentTime(EnvironmentTickCount() - m_perfMonMS);
+ m_scene.StatsReporter.AddAgentTime(Util.EnvironmentTickCountSubtract(m_perfMonMS));
}
#endregion
@@ -2168,7 +2144,7 @@ namespace OpenSim.Region.Framework.Scenes
// server.
if (remoteClient.IsActive)
{
- m_perfMonMS = EnvironmentTickCount();
+ m_perfMonMS = Util.EnvironmentTickCount();
PhysicsActor actor = m_physicsActor;
Vector3 velocity = (actor != null) ? actor.Velocity : Vector3.Zero;
@@ -2181,7 +2157,7 @@ namespace OpenSim.Region.Framework.Scenes
remoteClient.SendAvatarTerseUpdate(new SendAvatarTerseData(m_rootRegionHandle, (ushort)(m_scene.TimeDilation * ushort.MaxValue), LocalId,
pos, velocity, Vector3.Zero, m_bodyRot, CollisionPlane, m_uuid, null, GetUpdatePriority(remoteClient)));
- m_scene.StatsReporter.AddAgentTime(EnvironmentTickCountSubtract(m_perfMonMS));
+ m_scene.StatsReporter.AddAgentTime(Util.EnvironmentTickCountSubtract(m_perfMonMS));
m_scene.StatsReporter.AddAgentUpdates(1);
}
}
@@ -2191,11 +2167,11 @@ namespace OpenSim.Region.Framework.Scenes
///
public void SendTerseUpdateToAllClients()
{
- m_perfMonMS = EnvironmentTickCount();
+ m_perfMonMS = Util.EnvironmentTickCount();
m_scene.ForEachClient(SendTerseUpdateToClient);
- m_scene.StatsReporter.AddAgentTime(EnvironmentTickCountSubtract(m_perfMonMS));
+ m_scene.StatsReporter.AddAgentTime(Util.EnvironmentTickCountSubtract(m_perfMonMS));
}
public void SendCoarseLocations()
@@ -2215,7 +2191,7 @@ namespace OpenSim.Region.Framework.Scenes
public void SendCoarseLocationsDefault(UUID sceneId, ScenePresence p)
{
- m_perfMonMS = EnvironmentTickCount();
+ m_perfMonMS = Util.EnvironmentTickCount();
List CoarseLocations = new List();
List AvatarUUIDs = new List();
@@ -2251,7 +2227,7 @@ namespace OpenSim.Region.Framework.Scenes
m_controllingClient.SendCoarseLocationUpdate(AvatarUUIDs, CoarseLocations);
- m_scene.StatsReporter.AddAgentTime(EnvironmentTickCountSubtract(m_perfMonMS));
+ m_scene.StatsReporter.AddAgentTime(Util.EnvironmentTickCountSubtract(m_perfMonMS));
}
public void CoarseLocationChange()
@@ -2288,7 +2264,7 @@ namespace OpenSim.Region.Framework.Scenes
///
public void SendInitialFullUpdateToAllClients()
{
- m_perfMonMS = EnvironmentTickCount();
+ m_perfMonMS = Util.EnvironmentTickCount();
ScenePresence[] avatars = m_scene.GetScenePresences();
@@ -2314,14 +2290,14 @@ namespace OpenSim.Region.Framework.Scenes
}
m_scene.StatsReporter.AddAgentUpdates(avatars.Length);
- m_scene.StatsReporter.AddAgentTime(EnvironmentTickCountSubtract(m_perfMonMS));
+ m_scene.StatsReporter.AddAgentTime(Util.EnvironmentTickCountSubtract(m_perfMonMS));
//Animator.SendAnimPack();
}
public void SendFullUpdateToAllClients()
{
- m_perfMonMS = EnvironmentTickCount();
+ m_perfMonMS = Util.EnvironmentTickCount();
// only send update from root agents to other clients; children are only "listening posts"
List avatars = m_scene.GetAvatars();
@@ -2331,7 +2307,7 @@ namespace OpenSim.Region.Framework.Scenes
}
m_scene.StatsReporter.AddAgentUpdates(avatars.Count);
- m_scene.StatsReporter.AddAgentTime(EnvironmentTickCountSubtract(m_perfMonMS));
+ m_scene.StatsReporter.AddAgentTime(Util.EnvironmentTickCountSubtract(m_perfMonMS));
Animator.SendAnimPack();
}
@@ -2373,7 +2349,7 @@ namespace OpenSim.Region.Framework.Scenes
///
public void SendAppearanceToAllOtherAgents()
{
- m_perfMonMS = EnvironmentTickCount();
+ m_perfMonMS = Util.EnvironmentTickCount();
m_scene.ForEachScenePresence(delegate(ScenePresence scenePresence)
{
@@ -2382,8 +2358,8 @@ namespace OpenSim.Region.Framework.Scenes
SendAppearanceToOtherAgent(scenePresence);
}
});
-
- m_scene.StatsReporter.AddAgentTime(EnvironmentTickCountSubtract(m_perfMonMS));
+
+ m_scene.StatsReporter.AddAgentTime(Util.EnvironmentTickCountSubtract(m_perfMonMS));
}
///
@@ -3200,11 +3176,13 @@ namespace OpenSim.Region.Framework.Scenes
// I don't get it but mono crashes when you try to dispose of this timer,
// unsetting the elapsed callback should be enough to allow for cleanup however.
- //m_reprioritizationTimer.Dispose();
+ // m_reprioritizationTimer.Dispose();
m_sceneViewer.Close();
RemoveFromPhysicalScene();
+ m_animator.Close();
+ m_animator = null;
}
public ScenePresence()
diff --git a/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs b/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs
index f92f440117..e368c2ae33 100644
--- a/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs
+++ b/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs
@@ -75,7 +75,7 @@ namespace OpenSim.Region.Framework.Scenes
UnAckedBytes = 24,
}
- // Sending a stats update every 3 seconds
+ // Sending a stats update every 3 seconds-
private int statsUpdatesEveryMS = 3000;
private float statsUpdateFactor = 0;
private float m_timeDilation = 0;
@@ -240,7 +240,7 @@ namespace OpenSim.Region.Framework.Scenes
sb[12].StatID = (uint)Stats.OtherMS;
sb[12].StatValue = m_otherMS / statsUpdateFactor;
- sb[13].StatID = (uint)Stats.InPacketsPerSecond;
+ sb[13].StatID = (uint)Stats.InPacketsPerSecond;
sb[13].StatValue = (m_inPacketsPerSecond / statsUpdateFactor);
sb[14].StatID = (uint)Stats.OutPacketsPerSecond;
diff --git a/bin/IronMath.dll b/bin/IronMath.dll
deleted file mode 100644
index 4960cc6653..0000000000
Binary files a/bin/IronMath.dll and /dev/null differ
diff --git a/bin/IronPython.dll b/bin/IronPython.dll
deleted file mode 100644
index 2efe7ef6e2..0000000000
Binary files a/bin/IronPython.dll and /dev/null differ
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index f9d9ca6b36..059a5691c6 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -342,7 +342,7 @@
; The MessagingServer is a companion of the UserServer. It uses
; user_send_key and user_recv_key, too
- ;messaging_server_url = "http://127.0.0.1:8006"
+ messaging_server_url = "http://127.0.0.1:8006"
; What is reported as the "X-Secondlife-Shard"
; Defaults to the user server url if not set
@@ -1155,7 +1155,6 @@
safemode = false
[VivoxVoice]
-
; The VivoxVoice module will allow you to provide voice on your
; region(s). It uses the same voice technology as the LL grid and
; works with recent LL clients (we have tested 1.22.9.110075, so
@@ -1296,6 +1295,15 @@
RootReprioritizationDistance = 10.0
ChildReprioritizationDistance = 20.0
+
+[WebStats]
+; View region statistics via a web page
+; See http://opensimulator.org/wiki/FAQ#Region_Statistics_on_a_Web_Page
+; Use a web browser and type in the "Login URI" + "/SStats/"
+; For example- http://127.0.0.1:9000/SStats/
+; enabled=false
+
+
;;
;; These are defaults that are overwritten below in [Architecture].
;; These defaults allow OpenSim to work out of the box with