code: func Dial(address string) (*PipeConn, error) {
  	for {
  		conn, err := dial(address, nmpwait_wait_forever)
  		if err == nil {
  			return conn, nil
  		}
  		if isPipeNotReady(err) {
  			<-time.After(100 * time.Millisecond)
  			continue
  		}
  		return nil, err
  	}
  }
docs: // Dial connects to a named pipe with the given address. If the specified pipe is not available,
  // it will wait indefinitely for the pipe to become available.
  //
  // The address must be of the form \\.\\pipe\<name> for local pipes and \\<computer>\pipe\<name>
  // for remote pipes.
  //
  // Dial will return a PipeError if you pass in a badly formatted pipe name.
  //
  // Examples:
  //   // local pipe
  //   conn, err := Dial(`\\.\pipe\mypipename`)
  //
  //   // remote pipe
  //   conn, err := Dial(`\\othercomp\pipe\mypipename`)