code: func (l *Listener) Serve() error {
  	// Ensure we mark state closed if we fail before Close is called externally.
  	defer l.Close()
  
  	if atomic.LoadInt32(&l.stopFlag) != 0 {
  		return errors.New("serve called on a closed listener")
  	}
  
  	listen, err := l.listenFunc()
  	if err != nil {
  		return err
  	}
  	close(l.listeningChan)
  
  	for {
  		conn, err := listen.Accept()
  		if err != nil {
  			if atomic.LoadInt32(&l.stopFlag) == 1 {
  				return nil
  			}
  			return err
  		}
  
  		go l.handleConn(conn)
  	}
  }
docs: // Serve runs the listener until it is stopped. It is an error to call Serve
  // more than once for any given Listener instance.