From 963cf25813ad2bd6dceaa39757391fbf94d6f09e Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Sun, 13 Dec 2009 03:04:16 +1100
Subject: * Implements OSSL function: osGetSimulatorMemory - returns the
current amount of memory allocated to the simulator process (Moderate Threat
Level). * Cleans redundant information out of the Simulator Version. Versions
now look like: "OpenSimulator 0.6.9(dev) Unix/Mono" * [Minor] additional log
info for MySQLInventoryData
---
OpenSim/Data/MySQL/MySQLInventoryData.cs | 3 +++
OpenSim/Framework/Util.cs | 20 ++++++++++++++++++++
OpenSim/Region/Framework/Scenes/Scene.cs | 5 +++++
.../Shared/Api/Implementation/OSSL_Api.cs | 13 +++++++++++++
.../ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | 2 ++
.../ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | 10 ++++++++++
6 files changed, 53 insertions(+)
(limited to 'OpenSim')
diff --git a/OpenSim/Data/MySQL/MySQLInventoryData.cs b/OpenSim/Data/MySQL/MySQLInventoryData.cs
index 0ea0cb7..d560c5f 100644
--- a/OpenSim/Data/MySQL/MySQLInventoryData.cs
+++ b/OpenSim/Data/MySQL/MySQLInventoryData.cs
@@ -91,6 +91,9 @@ namespace OpenSim.Data.MySQL
rollbackStore = GridDataMySqlFile.ParseFileReadValue("rollback") == "true";
opengridmode = GridDataMySqlFile.ParseFileReadValue("opengridmode") == "true";
+ if(rollbackStore)
+ m_log.Warn("[MysqlInventory] Enabling rollback mode in: " + rollbackDir);
+
database =
new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling,
settingPort);
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 1112497..7215086 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -1007,6 +1007,26 @@ namespace OpenSim.Framework
return os;
}
+ public static string GetRuntimeInformation()
+ {
+ string ru = String.Empty;
+
+ if (Environment.OSVersion.Platform == PlatformID.Unix)
+ ru = "Unix/Mono";
+ else
+ if (Environment.OSVersion.Platform == PlatformID.MacOSX)
+ ru = "OSX/Mono";
+ else
+ {
+ if (Type.GetType("Mono.Runtime") != null)
+ ru = "Win/Mono";
+ else
+ ru = "Win/.NET";
+ }
+
+ return ru;
+ }
+
///
/// Is the given string a UUID?
///
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index a22fb5f..cc13972 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -574,10 +574,15 @@ namespace OpenSim.Region.Framework.Scenes
StatsReporter.SetObjectCapacity(objectCapacity);
+ // Old
+ /*
m_simulatorVersion = simulatorVersion
+ " (OS " + Util.GetOperatingSystemInformation() + ")"
+ " ChilTasks:" + m_seeIntoRegionFromNeighbor.ToString()
+ " PhysPrim:" + m_physicalPrim.ToString();
+ */
+
+ m_simulatorVersion = simulatorVersion + " (" + Util.GetRuntimeInformation() + ")";
try
{
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 5501679..e9e54ae 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -1970,5 +1970,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return ret;
}
+ public int osGetSimulatorMemory()
+ {
+ CheckThreatLevel(ThreatLevel.Moderate, "osGetRegionStats");
+ m_host.AddScriptLPS(1);
+ long pws = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;
+
+ if (pws > Int32.MaxValue)
+ return Int32.MaxValue;
+ if (pws < 0)
+ return 0;
+
+ return (int)pws;
+ }
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index 0b0dc00..580c354 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -163,5 +163,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
key osGetMapTexture();
key osGetRegionMapTexture(string regionName);
LSL_List osGetRegionStats();
+
+ int osGetSimulatorMemory();
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index 519463e..2876ad6 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -637,5 +637,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
{
return m_OSSL_Functions.osGetRegionStats();
}
+
+ ///
+ /// Returns the amount of memory in use by the Simulator Daemon.
+ /// Amount in bytes - if >= 4GB, returns 4GB. (LSL is not 64-bit aware)
+ ///
+ ///
+ public LSL_Integer osGetSimulatorMemory()
+ {
+ return m_OSSL_Functions.osGetSimulatorMemory();
+ }
}
}
--
cgit v1.1