1
0
mirror of https://github.com/lidgren/lidgren-network-gen3.git synced 2026-05-15 06:36:30 +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}")]
public partial class NetPeer
{
private static int s_threadCount = 0;
internal const int kMinPacketHeaderSize = 2;
internal const int kMaxPacketHeaderSize = 5;
@@ -51,6 +53,11 @@ namespace Lidgren.Network
/// </summary>
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>
/// Gets a copy of the list of connections
/// </summary>
@@ -141,10 +148,10 @@ namespace Lidgren.Network
m_configuration.VerifyAndLock();
InitializeNetwork();
// start network thread
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.Start();

View File

@@ -53,7 +53,7 @@ namespace Lidgren.Network
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 static int m_extraSeed = 42;
private static int s_extraSeed = 42;
uint m_x, m_y, m_z, m_w;
@@ -68,7 +68,7 @@ namespace Lidgren.Network
seed ^= (int)(Stopwatch.GetTimestamp());
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;
}

View File

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