wgengine/magicsock: drop a bytes.Buffer sync.Pool, use logger.ArgWriter instead

pull/427/head
Brad Fitzpatrick 4 years ago
parent becce82246
commit 9e5d79e2f1

@ -7,7 +7,7 @@
package magicsock package magicsock
import ( import (
"bytes" "bufio"
"context" "context"
"encoding/binary" "encoding/binary"
"errors" "errors"
@ -1362,37 +1362,29 @@ func (c *Conn) closeDerpLocked(node int, why string) {
} }
} }
var bufPool = sync.Pool{New: func() interface{} { return new(bytes.Buffer) }}
// c.mu must be held. // c.mu must be held.
func (c *Conn) logActiveDerpLocked() { func (c *Conn) logActiveDerpLocked() {
buf := bufPool.Get().(*bytes.Buffer)
defer bufPool.Put(buf)
now := time.Now() now := time.Now()
buf.Reset() c.logf("magicsock: %v active derp conns%s", len(c.activeDerp), logger.ArgWriter(func(buf *bufio.Writer) {
buf.WriteString(": ") if len(c.activeDerp) == 0 {
c.foreachActiveDerpSortedLocked(func(node int, ad activeDerp) { return
fmt.Fprintf(buf, "derp-%d=cr%v,wr%v ", node, simpleDur(now.Sub(ad.createTime)), simpleDur(now.Sub(*ad.lastWrite))) }
}) buf.WriteString(":")
var details []byte c.foreachActiveDerpSortedLocked(func(node int, ad activeDerp) {
if buf.Len() > len(": ") { fmt.Fprintf(buf, " derp-%d=cr%v,wr%v", node, simpleDur(now.Sub(ad.createTime)), simpleDur(now.Sub(*ad.lastWrite)))
details = bytes.TrimSpace(buf.Bytes()) })
} }))
c.logf("magicsock: %v active derp conns%s", len(c.activeDerp), details)
} }
func (c *Conn) logEndpointChange(endpoints []string, reasons map[string]string) { func (c *Conn) logEndpointChange(endpoints []string, reasons map[string]string) {
buf := bufPool.Get().(*bytes.Buffer) c.logf("magicsock: endpoints changed: %s", logger.ArgWriter(func(buf *bufio.Writer) {
defer bufPool.Put(buf) for i, ep := range endpoints {
buf.Reset() if i > 0 {
buf.WriteString("magicsock: endpoints changed: ") buf.WriteString(", ")
for i, ep := range endpoints { }
if i > 0 { fmt.Fprintf(buf, "%s (%s)", ep, reasons[ep])
buf.WriteString(", ")
} }
fmt.Fprintf(buf, "%s (%s)", ep, reasons[ep]) }))
}
c.logf("%s", buf.Bytes())
} }
// c.mu must be held. // c.mu must be held.

Loading…
Cancel
Save