refactor timer calculation in sesssion to reduce syscalls

This commit is contained in:
Lucas Clemente
2016-05-24 17:42:14 +02:00
parent 55fe1390b3
commit d4a189b2d1
6 changed files with 49 additions and 44 deletions

View File

@@ -313,17 +313,15 @@ func (h *sentPacketHandler) queuePacketsRTO() {
}
}
func (h *sentPacketHandler) TimeToFirstRTO() time.Duration {
now := time.Now()
min := utils.InfDuration
func (h *sentPacketHandler) TimeOfFirstRTO() time.Time {
var min time.Time
for _, p := range h.packetHistory {
if p == nil || p.Retransmitted {
continue
}
if now.After(p.rtoTime) {
return 0
if min.IsZero() || min.After(p.rtoTime) {
min = p.rtoTime
}
min = utils.MinDuration(min, p.rtoTime.Sub(now))
}
return min
}