code: func (p *simpleResourcePool) Discard(handle ManagedHandle) error {
  	if pool, ok := handle.Owner().(*simpleResourcePool); !ok || pool != p {
  		return errors.New(
  			"Resource pool cannot take control of a handle owned " +
  				"by another resource pool")
  	}
  
  	h := handle.ReleaseUnderlyingHandle()
  	if h != nil {
  		atomic.AddInt32(p.numActive, -1)
  		if err := p.options.Close(h); err != nil {
  			return fmt.Errorf("failed to close resource handle: %v", err)
  		}
  	}
  	return nil
  }
docs: // See ResourcePool for documentation.