code: func (b *Buffer) Run(gen func(chan<- func() error)) <-chan error {
  	return b.runThen(gen, nil)
  }
docs: // Run implements the same semantics as Runner's Run. However, if the
  // dispatch pipeline is full, Run will buffer the work and return immediately
  // rather than block.