1
0
mirror of https://github.com/lidgren/lidgren-network-gen3.git synced 2026-05-15 22:56:30 +09:00

m_needFlushSendQueue added to prevent traversing sender channels each heartbeat

This commit is contained in:
Michael Lidgren
2015-01-20 17:39:03 +01:00
parent f95a6e02c4
commit d57f7045fe
6 changed files with 24 additions and 7 deletions

View File

@@ -253,7 +253,11 @@ namespace Lidgren.Network
var channel = m_sendChannels[i];
NetException.Assert(m_sendBufferWritePtr < 1 || m_sendBufferNumMessages > 0);
if (channel != null)
{
channel.SendQueuedMessages(now);
if (channel.QueuedSendsCount > 0)
m_peer.m_needFlushSendQueue = true; // failed to send all queued sends; likely a full window - need to try again
}
NetException.Assert(m_sendBufferWritePtr < 1 || m_sendBufferNumMessages > 0);
}
}
@@ -534,7 +538,7 @@ namespace Lidgren.Network
}
windowSize = chan.WindowSize;
freeWindowSlots = chan.GetAllowedSends() - chan.m_queuedSends.Count;
freeWindowSlots = chan.GetFreeWindowSlots();
return;
}
@@ -544,7 +548,7 @@ namespace Lidgren.Network
var chan = m_sendChannels[channelSlot];
if (chan == null)
return true;
return (chan.GetAllowedSends() - chan.m_queuedSends.Count) > 0;
return chan.GetFreeWindowSlots() > 0;
}
internal void Shutdown(string reason)