mirror of
https://github.com/yggdrasil-network/yggdrasil-go.git
synced 2025-04-28 22:25:07 +03:00
workarounds to dropping being too aggressive
This commit is contained in:
parent
b132560f65
commit
b17a035a05
2 changed files with 6 additions and 1 deletions
|
@ -55,6 +55,11 @@ func (q *packetQueue) drop() bool {
|
||||||
}
|
}
|
||||||
// Drop the oldest packet from the worst stream
|
// Drop the oldest packet from the worst stream
|
||||||
packet := worstStream.infos[0].packet
|
packet := worstStream.infos[0].packet
|
||||||
|
if q.size-uint64(len(packet)) < streamMsgSize {
|
||||||
|
// TODO something better
|
||||||
|
// We don't want to drop *all* packets, so lets save 1 batch worth...
|
||||||
|
return false
|
||||||
|
}
|
||||||
worstStream.infos = worstStream.infos[1:]
|
worstStream.infos = worstStream.infos[1:]
|
||||||
worstStream.size -= uint64(len(packet))
|
worstStream.size -= uint64(len(packet))
|
||||||
q.size -= uint64(len(packet))
|
q.size -= uint64(len(packet))
|
||||||
|
|
|
@ -289,7 +289,7 @@ func (p *peer) _sendPackets(packets [][]byte) {
|
||||||
func (p *peer) _handleIdle() {
|
func (p *peer) _handleIdle() {
|
||||||
var packets [][]byte
|
var packets [][]byte
|
||||||
var size uint64
|
var size uint64
|
||||||
for size < 65535 {
|
for size < streamMsgSize {
|
||||||
if packet, success := p.queue.pop(); success {
|
if packet, success := p.queue.pop(); success {
|
||||||
packets = append(packets, packet)
|
packets = append(packets, packet)
|
||||||
size += uint64(len(packet))
|
size += uint64(len(packet))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue