* Changed various modules to not initialize timers unless the module is initialized. Ideally, the timers would not initialize unless the module was actually enabled, but Melanie's work on configuring module loading from a config file should make that unnecessary

* Wrapped the Bitmap class used to generate the world map tile in a using statement to dispose of it after the JPEG2000 data is created
0.6.8-post-fixes
John Hurliman 2009-10-23 14:22:21 -07:00
parent 52a4534f7f
commit 2c34619aea
7 changed files with 41 additions and 31 deletions

View File

@ -52,10 +52,10 @@ namespace OpenSim.Client.MXP
private IConfigSource m_config; private IConfigSource m_config;
private int m_port = 1253; private int m_port = 1253;
private Timer m_ticker;
private readonly Dictionary<UUID, Scene> m_scenes = new Dictionary<UUID, Scene>(); private readonly Dictionary<UUID, Scene> m_scenes = new Dictionary<UUID, Scene>();
private readonly Timer m_ticker = new Timer(100); private bool m_shutdown;
private bool m_shutdown = false;
public void Initialise(Scene scene, IConfigSource source) public void Initialise(Scene scene, IConfigSource source)
{ {
@ -78,6 +78,7 @@ namespace OpenSim.Client.MXP
m_server = new MXPPacketServer(m_port, m_scenes,m_config.Configs["StandAlone"].GetBoolean("accounts_authenticate",true)); m_server = new MXPPacketServer(m_port, m_scenes,m_config.Configs["StandAlone"].GetBoolean("accounts_authenticate",true));
m_ticker = new Timer(100);
m_ticker.AutoReset = false; m_ticker.AutoReset = false;
m_ticker.Elapsed += ticker_Elapsed; m_ticker.Elapsed += ticker_Elapsed;

View File

@ -29,7 +29,6 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
using System.Timers;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;

View File

@ -98,27 +98,29 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
} }
terrainRenderer.Initialise(m_scene, m_config); terrainRenderer.Initialise(m_scene, m_config);
Bitmap mapbmp = new Bitmap((int)Constants.RegionSize, (int)Constants.RegionSize); using (Bitmap mapbmp = new Bitmap((int)Constants.RegionSize, (int)Constants.RegionSize))
//long t = System.Environment.TickCount; {
//for (int i = 0; i < 10; ++i) { //long t = System.Environment.TickCount;
//for (int i = 0; i < 10; ++i) {
terrainRenderer.TerrainToBitmap(mapbmp); terrainRenderer.TerrainToBitmap(mapbmp);
//} //}
//t = System.Environment.TickCount - t; //t = System.Environment.TickCount - t;
//m_log.InfoFormat("[MAPTILE] generation of 10 maptiles needed {0} ms", t); //m_log.InfoFormat("[MAPTILE] generation of 10 maptiles needed {0} ms", t);
if (drawPrimVolume) if (drawPrimVolume)
{ {
DrawObjectVolume(m_scene, mapbmp); DrawObjectVolume(m_scene, mapbmp);
} }
try try
{ {
imageData = OpenJPEG.EncodeFromImage(mapbmp, true); imageData = OpenJPEG.EncodeFromImage(mapbmp, true);
} }
catch (Exception e) // LEGIT: Catching problems caused by OpenJPEG p/invoke catch (Exception e) // LEGIT: Catching problems caused by OpenJPEG p/invoke
{ {
m_log.Error("Failed generating terrain map: " + e); m_log.Error("Failed generating terrain map: " + e);
}
} }
return imageData; return imageData;

View File

@ -891,6 +891,9 @@ namespace OpenSim.Region.Framework.Scenes
{ {
m_log.InfoFormat("[SCENE]: Closing down the single simulator: {0}", RegionInfo.RegionName); m_log.InfoFormat("[SCENE]: Closing down the single simulator: {0}", RegionInfo.RegionName);
m_restartTimer.Stop();
m_restartTimer.Close();
// Kick all ROOT agents with the message, 'The simulator is going down' // Kick all ROOT agents with the message, 'The simulator is going down'
ForEachScenePresence(delegate(ScenePresence avatar) ForEachScenePresence(delegate(ScenePresence avatar)
{ {

View File

@ -94,7 +94,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
} }
private Dictionary<UUID, GroupRequestIDInfo> m_clientRequestIDInfo = new Dictionary<UUID, GroupRequestIDInfo>(); private Dictionary<UUID, GroupRequestIDInfo> m_clientRequestIDInfo = new Dictionary<UUID, GroupRequestIDInfo>();
private const int m_clientRequestIDFlushTimeOut = 300000; // Every 5 minutes private const int m_clientRequestIDFlushTimeOut = 300000; // Every 5 minutes
private Timer m_clientRequestIDFlushTimer = new Timer(); private Timer m_clientRequestIDFlushTimer;
// Configuration settings // Configuration settings
@ -133,6 +133,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
m_groupNoticesEnabled = groupsConfig.GetBoolean("NoticesEnabled", true); m_groupNoticesEnabled = groupsConfig.GetBoolean("NoticesEnabled", true);
m_debugEnabled = groupsConfig.GetBoolean("DebugEnabled", true); m_debugEnabled = groupsConfig.GetBoolean("DebugEnabled", true);
m_clientRequestIDFlushTimer = new Timer();
m_clientRequestIDFlushTimer.Interval = m_clientRequestIDFlushTimeOut; m_clientRequestIDFlushTimer.Interval = m_clientRequestIDFlushTimeOut;
m_clientRequestIDFlushTimer.Elapsed += FlushClientRequestIDInfoCache; m_clientRequestIDFlushTimer.Elapsed += FlushClientRequestIDInfoCache;
m_clientRequestIDFlushTimer.AutoReset = true; m_clientRequestIDFlushTimer.AutoReset = true;

View File

@ -45,13 +45,13 @@ namespace OpenSim.Region.Modules.SvnSerialiser
public class SvnBackupModule : IRegionModule public class SvnBackupModule : IRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private readonly List<Scene> m_scenes = new List<Scene>();
private readonly Timer m_timer = new Timer();
private bool m_enabled = false; private List<Scene> m_scenes;
private bool m_installBackupOnLoad = false; private Timer m_timer;
private bool m_enabled;
private bool m_installBackupOnLoad;
private IRegionSerialiserModule m_serialiser; private IRegionSerialiserModule m_serialiser;
private bool m_svnAutoSave = false; private bool m_svnAutoSave;
private SvnClient m_svnClient; private SvnClient m_svnClient;
private string m_svndir = "SVNmodule" + Slash.DirectorySeparatorChar + "repo"; private string m_svndir = "SVNmodule" + Slash.DirectorySeparatorChar + "repo";
private string m_svnpass = "password"; private string m_svnpass = "password";
@ -204,6 +204,9 @@ namespace OpenSim.Region.Modules.SvnSerialiser
public void Initialise(Scene scene, IConfigSource source) public void Initialise(Scene scene, IConfigSource source)
{ {
m_scenes = new List<Scene>();
m_timer = new Timer();
try try
{ {
if (!source.Configs["SVN"].GetBoolean("Enabled", false)) if (!source.Configs["SVN"].GetBoolean("Enabled", false))

View File

@ -41,12 +41,10 @@ namespace OpenSim.Region.OptionalModules.World.NPC
{ {
// private const bool m_enabled = false; // private const bool m_enabled = false;
private Mutex m_createMutex = new Mutex(false); private Mutex m_createMutex;
private Timer m_timer;
private Timer m_timer = new Timer(500);
private Dictionary<UUID,NPCAvatar> m_avatars = new Dictionary<UUID, NPCAvatar>(); private Dictionary<UUID,NPCAvatar> m_avatars = new Dictionary<UUID, NPCAvatar>();
private Dictionary<UUID,AvatarAppearance> m_appearanceCache = new Dictionary<UUID, AvatarAppearance>(); private Dictionary<UUID,AvatarAppearance> m_appearanceCache = new Dictionary<UUID, AvatarAppearance>();
// Timer vars. // Timer vars.
@ -138,10 +136,13 @@ namespace OpenSim.Region.OptionalModules.World.NPC
public void Initialise(Scene scene, IConfigSource source) public void Initialise(Scene scene, IConfigSource source)
{ {
scene.RegisterModuleInterface<INPCModule>(this); m_createMutex = new Mutex(false);
m_timer = new Timer(500);
m_timer.Elapsed += m_timer_Elapsed; m_timer.Elapsed += m_timer_Elapsed;
m_timer.Start(); m_timer.Start();
scene.RegisterModuleInterface<INPCModule>(this);
} }
void m_timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) void m_timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)