1
0
mirror of https://github.com/lidgren/lidgren-network-gen3.git synced 2026-05-17 07:36:32 +09:00

Enumerated and exposed network thread name

This commit is contained in:
lidgren
2010-08-13 06:44:07 +00:00
parent 38bb13b3a7
commit cf60a5ef57
3 changed files with 31 additions and 24 deletions

View File

@@ -31,6 +31,8 @@ namespace Lidgren.Network
[DebuggerDisplay("Status={m_status}")] [DebuggerDisplay("Status={m_status}")]
public partial class NetPeer public partial class NetPeer
{ {
private static int s_threadCount = 0;
internal const int kMinPacketHeaderSize = 2; internal const int kMinPacketHeaderSize = 2;
internal const int kMaxPacketHeaderSize = 5; internal const int kMaxPacketHeaderSize = 5;
@@ -51,6 +53,11 @@ namespace Lidgren.Network
/// </summary> /// </summary>
public NetPeerStatus Status { get { return m_status; } } public NetPeerStatus Status { get { return m_status; } }
/// <summary>
/// Name of the network thread (if NetPeer.Start has been called)
/// </summary>
public string NetworkThreadName { get { return (m_networkThread == null ? string.Empty : m_networkThread.Name); } }
/// <summary> /// <summary>
/// Gets a copy of the list of connections /// Gets a copy of the list of connections
/// </summary> /// </summary>
@@ -141,10 +148,10 @@ namespace Lidgren.Network
m_configuration.VerifyAndLock(); m_configuration.VerifyAndLock();
InitializeNetwork(); InitializeNetwork();
// start network thread // start network thread
m_networkThread = new Thread(new ThreadStart(NetworkLoop)); m_networkThread = new Thread(new ThreadStart(NetworkLoop));
m_networkThread.Name = "Lidgren network thread"; m_networkThread.Name = "Lidgren network thread " + Interlocked.Increment(ref s_threadCount).ToString();
m_networkThread.IsBackground = true; m_networkThread.IsBackground = true;
m_networkThread.Start(); m_networkThread.Start();

View File

@@ -53,7 +53,7 @@ namespace Lidgren.Network
private const double c_realUnitUint = 1.0 / ((double)uint.MaxValue + 1.0); private const double c_realUnitUint = 1.0 / ((double)uint.MaxValue + 1.0);
private const uint c_y = 842502087, c_z = 3579807591, c_w = 273326509; private const uint c_y = 842502087, c_z = 3579807591, c_w = 273326509;
private static int m_extraSeed = 42; private static int s_extraSeed = 42;
uint m_x, m_y, m_z, m_w; uint m_x, m_y, m_z, m_w;
@@ -68,7 +68,7 @@ namespace Lidgren.Network
seed ^= (int)(Stopwatch.GetTimestamp()); seed ^= (int)(Stopwatch.GetTimestamp());
seed ^= (int)(Environment.WorkingSet); // will return 0 on mono seed ^= (int)(Environment.WorkingSet); // will return 0 on mono
int extraSeed = Interlocked.Increment(ref m_extraSeed); int extraSeed = Interlocked.Increment(ref s_extraSeed);
return seed + extraSeed; return seed + extraSeed;
} }

View File

@@ -14,7 +14,7 @@ namespace DurableClient
public static Form1 MainForm; public static Form1 MainForm;
public static NetClient Client; public static NetClient Client;
private static bool m_sendStuff; private static bool s_sendStuff;
[STAThread] [STAThread]
static void Main() static void Main()
@@ -38,13 +38,13 @@ namespace DurableClient
NativeMethods.AppendText(MainForm.richTextBox1, text); NativeMethods.AppendText(MainForm.richTextBox1, text);
} }
private static double m_nextSendReliableOrdered; private static double s_nextSendReliableOrdered;
private static uint[] m_reliableOrderedNr = new uint[3]; private static uint[] s_reliableOrderedNr = new uint[3];
private static double m_nextSendSequenced; private static double s_nextSendSequenced;
private static uint[] m_sequencedNr = new uint[3]; private static uint[] s_sequencedNr = new uint[3];
private static double m_lastLabelUpdate; private static double s_lastLabelUpdate;
private const double kLabelUpdateFrequency = 0.25; private const double kLabelUpdateFrequency = 0.25;
static void AppLoop(object sender, EventArgs e) static void AppLoop(object sender, EventArgs e)
@@ -73,14 +73,14 @@ namespace DurableClient
if (status == NetConnectionStatus.Connected) if (status == NetConnectionStatus.Connected)
{ {
// go // go
m_sendStuff = true; s_sendStuff = true;
} }
break; break;
} }
Client.Recycle(msg); Client.Recycle(msg);
} }
if (m_sendStuff) if (s_sendStuff)
{ {
double now = NetTime.Now; double now = NetTime.Now;
@@ -89,34 +89,34 @@ namespace DurableClient
float speedMultiplier = 1.0f / speed; float speedMultiplier = 1.0f / speed;
int r = NetRandom.Instance.Next(3); int r = NetRandom.Instance.Next(3);
if (now > m_nextSendReliableOrdered) if (now > s_nextSendReliableOrdered)
{ {
NetOutgoingMessage om = Client.CreateMessage(5); NetOutgoingMessage om = Client.CreateMessage(5);
uint rv = m_reliableOrderedNr[r]; uint rv = s_reliableOrderedNr[r];
m_reliableOrderedNr[r]++; s_reliableOrderedNr[r]++;
om.Write(rv); om.Write(rv);
Client.SendMessage(om, NetDeliveryMethod.ReliableOrdered, r); Client.SendMessage(om, NetDeliveryMethod.ReliableOrdered, r);
m_nextSendReliableOrdered = now + (NetRandom.Instance.NextFloat() * (0.01f * speedMultiplier)) + (0.005f * speedMultiplier); s_nextSendReliableOrdered = now + (NetRandom.Instance.NextFloat() * (0.01f * speedMultiplier)) + (0.005f * speedMultiplier);
} }
if (now > m_nextSendSequenced) if (now > s_nextSendSequenced)
{ {
NetOutgoingMessage om = Client.CreateMessage(); NetOutgoingMessage om = Client.CreateMessage();
uint v = m_sequencedNr[r]; uint v = s_sequencedNr[r];
m_sequencedNr[r]++; s_sequencedNr[r]++;
om.Write(v); om.Write(v);
Client.SendMessage(om, NetDeliveryMethod.UnreliableSequenced, r); Client.SendMessage(om, NetDeliveryMethod.UnreliableSequenced, r);
m_nextSendSequenced = now + (NetRandom.Instance.NextFloat() * (0.01f * speedMultiplier)) + (0.005f * speedMultiplier); s_nextSendSequenced = now + (NetRandom.Instance.NextFloat() * (0.01f * speedMultiplier)) + (0.005f * speedMultiplier);
} }
if (now > m_lastLabelUpdate + kLabelUpdateFrequency) if (now > s_lastLabelUpdate + kLabelUpdateFrequency)
{ {
UpdateLabel(); UpdateLabel();
m_lastLabelUpdate = now; s_lastLabelUpdate = now;
} }
} }
} }
@@ -131,8 +131,8 @@ namespace DurableClient
bdr.Append(Client.Statistics.ToString()); bdr.Append(Client.Statistics.ToString());
bdr.Append(conn.Statistics.ToString()); bdr.Append(conn.Statistics.ToString());
bdr.AppendLine("SENT Reliable ordered: " + m_reliableOrderedNr[0] + ", " + m_reliableOrderedNr[1] + ", " + m_reliableOrderedNr[2]); bdr.AppendLine("SENT Reliable ordered: " + s_reliableOrderedNr[0] + ", " + s_reliableOrderedNr[1] + ", " + s_reliableOrderedNr[2]);
bdr.AppendLine("SENT Sequenced: " + m_sequencedNr[0] + ", " + m_sequencedNr[1] + ", " + m_sequencedNr[2]); bdr.AppendLine("SENT Sequenced: " + s_sequencedNr[0] + ", " + s_sequencedNr[1] + ", " + s_sequencedNr[2]);
MainForm.label1.Text = bdr.ToString(); MainForm.label1.Text = bdr.ToString();
} }
} }