INNER CODE UNIT · Go
backoff
docker/compose · relay/main.go:138
backoff := 5 * time.Millisecond
for {
conn, err := listener.Accept()
if err != nil {
if ctx.Err() != nil {
return
}
// Back off before retrying: some accept errors (e.g. EMFILE)
// persist until a descriptor is freed, and a tight loop would
// spin the CPU and flood the log.
log.Printf("accept on %s: %v", listener.Addr(), err)
time.Sleep(backoff)
if backoff < time.Second {
backoff *= 2
}
continue
}
backoff = 5 * time.Millisecond