code: func (s *Dynamic) SetSize(n int64) error {
  	s.mu.Lock()
  	defer s.mu.Unlock()
  	s.size = n
  	return nil
  }
docs: // SetSize dynamically updates the number of available slots. If there are more
  // than n slots currently acquired, no further acquires will succeed until
  // sufficient have been released to take the total outstanding below n again.