code: func (l *LoadBalancer) Serve() error {
  	defer l.waitCancel()
  	backoffTimer := time.NewTicker(5 * time.Second)
  	defer backoffTimer.Stop()
  	for {
  		conn, err := l.listener.Accept()
  		if err != nil {
  			if l.isClosed() {
  				return trace.ConnectionProblem(nil, "listener is closed")
  			}
  			select {
  			case <-backoffTimer.C:
  				l.Debugf("backoff on network error")
  			case <-l.ctx.Done():
  				return trace.ConnectionProblem(nil, "context is closing")
  			}
  		}
  		go l.forwardConnection(conn)
  	}
  }
docs: // Serve starts accepting connections