send multiple packets at once, if the pacing delay is very small

This is an optimization to avoid waking of the run loop every couple of
microseconds.
This commit is contained in:
Marten Seemann
2018-01-08 10:03:26 +07:00
parent 5ef89733ae
commit 9ef3a47da5
9 changed files with 214 additions and 88 deletions

View File

@@ -114,6 +114,14 @@ func MinTime(a, b time.Time) time.Time {
return a
}
// MaxTime returns the later time
func MaxTime(a, b time.Time) time.Time {
if a.After(b) {
return a
}
return b
}
// MaxPacketNumber returns the max packet number
func MaxPacketNumber(a, b protocol.PacketNumber) protocol.PacketNumber {
if a > b {

View File

@@ -49,6 +49,13 @@ var _ = Describe("Min / Max", func() {
Expect(MaxPacketNumber(1, 2)).To(Equal(protocol.PacketNumber(2)))
Expect(MaxPacketNumber(2, 1)).To(Equal(protocol.PacketNumber(2)))
})
It("returns the maximum time", func() {
a := time.Now()
b := a.Add(time.Second)
Expect(MaxTime(a, b)).To(Equal(b))
Expect(MaxTime(b, a)).To(Equal(b))
})
})
Context("Min", func() {