code: func (b *Buffer) RunOne(f func() error) <-chan error {
  	b.init()
  
  	errC := make(chan error)
  	b.workC <- WorkItem{
  		F:     f,
  		ErrC:  errC,
  		After: func() { close(errC) },
  	}
  	return errC
  }
docs: // RunOne implements the same semantics as Runner's RunOne. However, if the
  // dispatch pipeline is full, RunOne will buffer the work and return immediately
  // rather than block.