code: func newAsyncUdsWriter(addr string) (*asyncUdsWriter, error) {
  	udsAddr, err := net.ResolveUnixAddr("unixgram", addr)
  	if err != nil {
  		return nil, err
  	}
  
  	writer := &asyncUdsWriter{
  		addr:         udsAddr,
  		conn:         nil,
  		writeTimeout: defaultUDSTimeout,
  		// 8192 * 8KB = 65.5MB
  		datagramQueue: make(chan []byte, 8192),
  		stopChan:      make(chan struct{}, 1),
  	}
  
  	go writer.sendLoop()
  	return writer, nil
  }
docs: // New returns a pointer to a new asyncUdsWriter given a socket file path as addr.