remove excessive notion of paralelism
parent
25371933b4
commit
e650a4ff16
|
@ -312,9 +312,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
/// stack. Use zero to leave this value as the default</summary>
|
/// stack. Use zero to leave this value as the default</summary>
|
||||||
protected int m_recvBufferSize;
|
protected int m_recvBufferSize;
|
||||||
|
|
||||||
/// <summary>Flag to process packets asynchronously or synchronously</summary>
|
|
||||||
protected bool m_asyncPacketHandling;
|
|
||||||
|
|
||||||
/// <summary>Tracks whether or not a packet was sent each round so we know
|
/// <summary>Tracks whether or not a packet was sent each round so we know
|
||||||
/// whether or not to sleep</summary>
|
/// whether or not to sleep</summary>
|
||||||
protected bool m_packetSent;
|
protected bool m_packetSent;
|
||||||
|
@ -473,7 +470,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
IConfig config = configSource.Configs["ClientStack.LindenUDP"];
|
IConfig config = configSource.Configs["ClientStack.LindenUDP"];
|
||||||
if (config != null)
|
if (config != null)
|
||||||
{
|
{
|
||||||
m_asyncPacketHandling = config.GetBoolean("async_packet_handling", true);
|
|
||||||
m_recvBufferSize = config.GetInt("client_socket_rcvbuf_size", 0);
|
m_recvBufferSize = config.GetInt("client_socket_rcvbuf_size", 0);
|
||||||
sceneThrottleBps = config.GetInt("scene_throttle_max_bps", 0);
|
sceneThrottleBps = config.GetInt("scene_throttle_max_bps", 0);
|
||||||
|
|
||||||
|
@ -540,10 +536,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
public void StartInbound()
|
public void StartInbound()
|
||||||
{
|
{
|
||||||
m_log.InfoFormat(
|
m_log.InfoFormat(
|
||||||
"[LLUDPSERVER]: Starting inbound packet processing for the LLUDP server in {0} mode with UsePools = {1}",
|
"[LLUDPSERVER]: Starting inbound packet processing for the LLUDP server");
|
||||||
m_asyncPacketHandling ? "asynchronous" : "synchronous", UsePools);
|
|
||||||
|
|
||||||
base.StartInbound(m_recvBufferSize, m_asyncPacketHandling);
|
base.StartInbound(m_recvBufferSize);
|
||||||
|
|
||||||
// This thread will process the packets received that are placed on the packetInbox
|
// This thread will process the packets received that are placed on the packetInbox
|
||||||
WorkManager.StartThread(
|
WorkManager.StartThread(
|
||||||
|
|
|
@ -57,9 +57,6 @@ namespace OpenMetaverse
|
||||||
/// <summary>UDP socket, used in either client or server mode</summary>
|
/// <summary>UDP socket, used in either client or server mode</summary>
|
||||||
private Socket m_udpSocket;
|
private Socket m_udpSocket;
|
||||||
|
|
||||||
/// <summary>Flag to process packets asynchronously or synchronously</summary>
|
|
||||||
private bool m_asyncPacketHandling;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Are we to use object pool(s) to reduce memory churn when receiving data?
|
/// Are we to use object pool(s) to reduce memory churn when receiving data?
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -205,10 +202,8 @@ namespace OpenMetaverse
|
||||||
/// manner (not throwing an exception when the remote side resets the
|
/// manner (not throwing an exception when the remote side resets the
|
||||||
/// connection). This call is ignored on Mono where the flag is not
|
/// connection). This call is ignored on Mono where the flag is not
|
||||||
/// necessary</remarks>
|
/// necessary</remarks>
|
||||||
public virtual void StartInbound(int recvBufferSize, bool asyncPacketHandling)
|
public virtual void StartInbound(int recvBufferSize)
|
||||||
{
|
{
|
||||||
m_asyncPacketHandling = asyncPacketHandling;
|
|
||||||
|
|
||||||
if (!IsRunningInbound)
|
if (!IsRunningInbound)
|
||||||
{
|
{
|
||||||
m_log.DebugFormat("[UDPBASE]: Starting inbound UDP loop");
|
m_log.DebugFormat("[UDPBASE]: Starting inbound UDP loop");
|
||||||
|
@ -407,12 +402,7 @@ namespace OpenMetaverse
|
||||||
if (IsRunningInbound)
|
if (IsRunningInbound)
|
||||||
{
|
{
|
||||||
UdpReceives++;
|
UdpReceives++;
|
||||||
|
|
||||||
// Asynchronous mode will start another receive before the
|
|
||||||
// callback for this packet is even fired. Very parallel :-)
|
|
||||||
if (m_asyncPacketHandling)
|
|
||||||
AsyncBeginReceive();
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// get the buffer that was created in AsyncBeginReceive
|
// get the buffer that was created in AsyncBeginReceive
|
||||||
|
@ -469,10 +459,7 @@ namespace OpenMetaverse
|
||||||
// if (UsePools)
|
// if (UsePools)
|
||||||
// Pool.ReturnObject(buffer);
|
// Pool.ReturnObject(buffer);
|
||||||
|
|
||||||
// Synchronous mode waits until the packet callback completes
|
AsyncBeginReceive();
|
||||||
// before starting the receive to fetch another packet
|
|
||||||
if (!m_asyncPacketHandling)
|
|
||||||
AsyncBeginReceive();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -649,14 +649,6 @@
|
||||||
|
|
||||||
|
|
||||||
[ClientStack.LindenUDP]
|
[ClientStack.LindenUDP]
|
||||||
; Set this to true to process incoming packets asynchronously. Networking is
|
|
||||||
; already separated from packet handling with a queue, so this will only
|
|
||||||
; affect whether networking internals such as packet decoding and
|
|
||||||
; acknowledgement accounting are done synchronously or asynchronously
|
|
||||||
; Default is true.
|
|
||||||
;
|
|
||||||
;async_packet_handling = true
|
|
||||||
|
|
||||||
; The client socket receive buffer size determines how many
|
; The client socket receive buffer size determines how many
|
||||||
; incoming requests we can process; the default on .NET is 8192
|
; incoming requests we can process; the default on .NET is 8192
|
||||||
; which is about 2 4k-sized UDP datagrams. On mono this is
|
; which is about 2 4k-sized UDP datagrams. On mono this is
|
||||||
|
|
Loading…
Reference in New Issue