code: func NewSimpleResourcePool(options Options) ResourcePool {
  	numActive := new(int32)
  	atomic.StoreInt32(numActive, 0)
  
  	activeHighWaterMark := new(int32)
  	atomic.StoreInt32(activeHighWaterMark, 0)
  
  	var tokens sync2.Semaphore
  	if options.OpenMaxConcurrency > 0 {
  		tokens = sync2.NewBoundedSemaphore(uint(options.OpenMaxConcurrency))
  	}
  
  	return &simpleResourcePool{
  		location:            "",
  		options:             options,
  		numActive:           numActive,
  		activeHighWaterMark: activeHighWaterMark,
  		openTokens:          tokens,
  		mutex:               sync.Mutex{},
  		idleHandles:         make([]*idleHandle, 0, 0),
  		isLameDuck:          false,
  	}
  }
docs: // This returns a SimpleResourcePool, where all handles are associated to a
  // single resource location.