INNER CODE UNIT · Go

serve

docker/compose · relay/main.go:137

func serve(ctx context.Context, listener net.Listener, upstream string, wg *sync.WaitGroup) {
	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
		}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…