code: func (w WorkerPoolPolicy) Options() (sync.PooledWorkerPoolOptions, int) {
  	opts := sync.NewPooledWorkerPoolOptions()
  	grow := w.GrowOnDemand
  	opts = opts.SetGrowOnDemand(grow)
  	if w.KillWorkerProbability != 0 {
  		opts = opts.SetKillWorkerProbability(w.KillWorkerProbability)
  	} else if grow {
  		// NB: if using a growing pool, default kill probability is too low, causing
  		// the pool to quickly grow out of control. Use a higher default kill probability
  		opts = opts.SetKillWorkerProbability(defaultGrowKillProbability)
  	}
  
  	if w.NumShards != 0 {
  		opts = opts.SetNumShards(w.NumShards)
  	}
  
  	if w.Size == 0 {
  		if grow {
  			w.Size = int(opts.NumShards())
  		} else {
  			w.Size = defaultWorkerPoolStaticSize
  		}
  	}
  
  	return opts, w.Size
  }
docs: // Options converts the worker pool policy to options, providing
  // the options, as well as the default size for the worker pool.