/
left76
/
cli
Обзор
Документация
Войти
/
left76
/
cli
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
vendor/github.com/json-iterator/go/feature_pool.go
57 строк
1 KB
Vincent Demeester
Add support for kubernetes in docker cli
26 дек 2017, 13:22
26 дек 2017, 13:22
8417e49
Код
Авторство
О чём код?
package jsoniter import ( "io" ) // 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 { select { case stream := <-cfg.streamPool: stream.Reset(writer) return stream default: return NewStream(cfg, writer, 512) } } func (cfg *frozenConfig) ReturnStream(stream *Stream) { stream.Error = nil select { case cfg.streamPool <- stream: return default: return } } func (cfg *frozenConfig) BorrowIterator(data []byte) *Iterator { select { case iter := <-cfg.iteratorPool: iter.ResetBytes(data) return iter default: return ParseBytes(cfg, data) } } func (cfg *frozenConfig) ReturnIterator(iter *Iterator) { iter.Error = nil select { case cfg.iteratorPool <- iter: return default: return } }