fix build break on UserManagementModule.

This also adds time since started to "show threads".  Unfortunately these two changes got mixed in.
iar_mods
Justin Clark-Casey (justincc) 2011-11-15 23:24:51 +00:00
parent 5b9fe4497d
commit aea547cd11
3 changed files with 23 additions and 15 deletions

View File

@ -244,7 +244,7 @@ namespace OpenSim.Framework.Servers
protected string GetThreadsReport()
{
// This should be a constant field.
string reportFormat = "{0,6} {1,35} {2,16} {3,10} {4,30}";
string reportFormat = "{0,6} {1,35} {2,16} {3,13} {4,10} {5,30}";
StringBuilder sb = new StringBuilder();
Watchdog.ThreadWatchdogInfo[] threads = Watchdog.GetThreads();
@ -253,7 +253,7 @@ namespace OpenSim.Framework.Servers
int timeNow = Util.EnvironmentTickCount();
sb.AppendFormat(reportFormat, "ID", "NAME", "LAST UPDATE (MS)", "PRIORITY", "STATE");
sb.AppendFormat(reportFormat, "ID", "NAME", "LAST UPDATE (MS)", "LIFETIME (MS)", "PRIORITY", "STATE");
sb.Append(Environment.NewLine);
foreach (Watchdog.ThreadWatchdogInfo twi in threads)
@ -262,8 +262,12 @@ namespace OpenSim.Framework.Servers
sb.AppendFormat(
reportFormat,
//t.ManagedThreadId, t.Name, string.Format("{0} ms", timeNow - twi.LastTick), t.Priority, t.ThreadState);
t.ManagedThreadId, t.Name, timeNow - twi.LastTick, t.Priority, t.ThreadState);
t.ManagedThreadId,
t.Name,
timeNow - twi.LastTick,
timeNow - twi.FirstTick,
t.Priority,
t.ThreadState);
sb.Append(Environment.NewLine);
}

View File

@ -52,10 +52,13 @@ namespace OpenSim.Framework
/// <summary>
/// Approximate tick when this thread was started.
/// </summary>
public int StartTick { get; private set; }
/// <remarks>
/// Not terribly good since this quickly wraps around.
/// </remarks>
public int FirstTick { get; private set; }
/// <summary>
/// Last time this heartbeat update was invoked
/// First time this heartbeat update was invoked
/// </summary>
public int LastTick { get; set; }
@ -73,8 +76,8 @@ namespace OpenSim.Framework
{
Thread = thread;
Timeout = timeout;
StartTick = Environment.TickCount & Int32.MaxValue;
LastTick = StartTick;
FirstTick = Environment.TickCount & Int32.MaxValue;
LastTick = FirstTick;
}
}

View File

@ -31,7 +31,6 @@ using System.Reflection;
using OpenSim.Framework;
using OpenSim.Framework.Console;
using OpenSim.Region.Framework;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
@ -44,13 +43,13 @@ using Nini.Config;
namespace OpenSim.Region.CoreModules.Framework.UserManagement
{
struct UserData
class UserData
{
public UUID Id;
public string FirstName;
public string LastName;
public string HomeURL;
public Dictionary<string, object> ServerURLs;
public UUID Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string HomeURL { get; set; }
public Dictionary<string, object> ServerURLs { get; set; }
}
public class UserManagementModule : ISharedRegionModule, IUserManagement
@ -253,6 +252,7 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
public string GetUserServerURL(UUID userID, string serverType)
{
UserData userdata;
lock (m_UserCache)
m_UserCache.TryGetValue(userID, out userdata);
@ -287,6 +287,7 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
if (account != null)
return userID.ToString();
UserData ud;
lock (m_UserCache)
m_UserCache.TryGetValue(userID, out ud);