code: func (h *packetHandlerMap) Close() error {
  	if err := h.conn.Close(); err != nil {
  		return err
  	}
  	<-h.listening // wait until listening returns
  	return nil
  }
docs: // Close the underlying connection and wait until listen() has returned.