| // IteratorPool a thread safe pool of iterators with same configuration |
| type IteratorPool interface { |
| BorrowIterator(data []byte) *Iterator |
| ReturnIterator(iter *Iterator) |
| // StreamPool a thread safe pool of streams with same configuration |
| type StreamPool interface { |
| BorrowStream(writer io.Writer) *Stream |
| ReturnStream(stream *Stream) |
| func (cfg *frozenConfig) BorrowStream(writer io.Writer) *Stream { |
| stream := cfg.streamPool.Get().(*Stream) |
| func (cfg *frozenConfig) ReturnStream(stream *Stream) { |
| cfg.streamPool.Put(stream) |
| func (cfg *frozenConfig) BorrowIterator(data []byte) *Iterator { |
| iter := cfg.iteratorPool.Get().(*Iterator) |
| func (cfg *frozenConfig) ReturnIterator(iter *Iterator) { |
| cfg.iteratorPool.Put(iter) |