pool.go
func (pool *ReaderPool) SetRate(rate int) int {
	pool.mu.Lock()
	old := pool.maxRate
	pool.maxRate = rate
	pool.setSharedRates()
	pool.mu.Unlock()
	return old
}
func (pool *ReaderPool) SetRate(rate int) int {
	pool.mu.Lock()
	old := pool.maxRate
	pool.maxRate = rate
	pool.setSharedRates()
	pool.mu.Unlock()
	return old
}
// SetRate of the pool, updating each given out reader to respect the
// newly set rate. Returns the old rate.