code: func (s *HTTPServer) Serve(l net.Listener) error {
  	s.initOnce.Do(s.init)
  
  	l = netutil.KeepAliveListener(l)
  
  	go func() {
  		<-s.Env.ctx.Done()
  		l.Close()
  	}()
  
  	go func() {
  		s.Server.Serve(l)
  	}()
  
  	return nil
  }
docs: // Serve overrides http.Server's Serve method.
  //
  // Unlike the original, this method returns immediately just after
  // starting a goroutine to accept connections.
  //
  // The framework automatically closes l when the environment's Cancel
  // is called.
  //
  // Serve always returns nil.