Skip to content

Commit f918e6d

Browse files
committed
use unbuffered chan for better timing and memory
1 parent 509975d commit f918e6d

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

emitter.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import (
77

88
var defaultEmitter Emitter
99

10-
const emitQueue = 2048
11-
1210
func init() {
1311
defaultEmitter.init()
1412
}
@@ -30,7 +28,7 @@ type (
3028
)
3129

3230
func (e *Emitter) init() {
33-
e.ch = make(chan emitPacket, emitQueue)
31+
e.ch = make(chan emitPacket)
3432
go e.emitTask()
3533
}
3634

kcp.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -665,9 +665,9 @@ func (kcp *KCP) flush(ackOnly bool) {
665665
return
666666
}
667667

668-
current := currentMs()
669668
// probe window size (if remote window size equals zero)
670669
if kcp.rmt_wnd == 0 {
670+
current := currentMs()
671671
if kcp.probe_wait == 0 {
672672
kcp.probe_wait = IKCP_PROBE_INIT
673673
kcp.ts_probe = current + kcp.probe_wait
@@ -747,6 +747,7 @@ func (kcp *KCP) flush(ackOnly bool) {
747747

748748
// send new segments
749749
for k := len(kcp.snd_buf) - newSegsCount; k < len(kcp.snd_buf); k++ {
750+
current := currentMs()
750751
segment := &kcp.snd_buf[k]
751752
segment.xmit++
752753
segment.rto = kcp.rx_rto
@@ -770,6 +771,7 @@ func (kcp *KCP) flush(ackOnly bool) {
770771

771772
// check for retransmissions
772773
for k := 0; k < len(kcp.snd_buf)-newSegsCount; k++ {
774+
current := currentMs()
773775
segment := &kcp.snd_buf[k]
774776
needsend := false
775777
if _itimediff(current, segment.resendts) >= 0 { // RTO

0 commit comments

Comments
 (0)