code: func NewPool(parentCtx context.Context) *Pool {
  	baseCtx, baseCancel := context.WithCancel(parentCtx)
  	ctx, cancel := context.WithCancel(baseCtx)
  	return &Pool{
  		baseCtx:    baseCtx,
  		baseCancel: baseCancel,
  		ctx:        ctx,
  		cancel:     cancel,
  	}
  }
docs: // NewPool creates a Pool