pool.go
func NewReaderPool(maxRate int, maxBurst time.Duration) *ReaderPool {
	return &ReaderPool{
		maxRate:  maxRate,
		maxBurst: maxBurst,
		givenOut: make(map[ThrottlerReader]struct{}),
	}
}
func NewReaderPool(maxRate int, maxBurst time.Duration) *ReaderPool {
	return &ReaderPool{
		maxRate:  maxRate,
		maxBurst: maxBurst,
		givenOut: make(map[ThrottlerReader]struct{}),
	}
}
func NewReaderPool ( maxRate int , maxBurst time . Duration ) * ReaderPool { return & ReaderPool { maxRate : maxRate , maxBurst : maxBurst , givenOut : make ( map [ ThrottlerReader ] struct { } ) , } }
// NewReaderPool creates a pool that ensures the writers it wraps will
// respect an overall maxRate, with maxBurst resolution. The semantics
// of the wrapped writers are the same as those of using a plain
// ThrottledReader.
NewReaderPool creates a pool that ensures the writers it wraps will respect an overall maxRate with maxBurst resolution . The semantics of the wrapped writers are the same as those of using a plain ThrottledReader .