diff options
author | Matthew Heon <matthew.heon@pm.me> | 2019-01-08 13:56:47 -0500 |
---|---|---|
committer | Matthew Heon <matthew.heon@pm.me> | 2019-01-10 15:48:09 -0500 |
commit | 1b761dbb02afc52f97a50af4b073a756c5cc6820 (patch) | |
tree | 2cfd5529fdffd98bbfa71b01ede72cf33bc403ce /vendor/github.com/json-iterator/go/pool.go | |
parent | 07f3b147f1619b234cad0fda3d7556c1f05e7f11 (diff) | |
download | podman-1b761dbb02afc52f97a50af4b073a756c5cc6820.tar.gz podman-1b761dbb02afc52f97a50af4b073a756c5cc6820.tar.bz2 podman-1b761dbb02afc52f97a50af4b073a756c5cc6820.zip |
Update json-iterator vendor to v1.1.5
We already have it vendored for a Kube package we import, but we
want a more recent version with additional bugfixes over the 1.0
release we originally had.
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
Diffstat (limited to 'vendor/github.com/json-iterator/go/pool.go')
-rw-r--r-- | vendor/github.com/json-iterator/go/pool.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/vendor/github.com/json-iterator/go/pool.go b/vendor/github.com/json-iterator/go/pool.go new file mode 100644 index 000000000..e2389b56c --- /dev/null +++ b/vendor/github.com/json-iterator/go/pool.go @@ -0,0 +1,42 @@ +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 { + stream := cfg.streamPool.Get().(*Stream) + stream.Reset(writer) + return stream +} + +func (cfg *frozenConfig) ReturnStream(stream *Stream) { + stream.out = nil + stream.Error = nil + stream.Attachment = nil + cfg.streamPool.Put(stream) +} + +func (cfg *frozenConfig) BorrowIterator(data []byte) *Iterator { + iter := cfg.iteratorPool.Get().(*Iterator) + iter.ResetBytes(data) + return iter +} + +func (cfg *frozenConfig) ReturnIterator(iter *Iterator) { + iter.Error = nil + iter.Attachment = nil + cfg.iteratorPool.Put(iter) +} |