Yuxuan Wang created THRIFT-5069:
-----------------------------------
Summary: Go: TDserializer is not resource pool friendly
Key: THRIFT-5069
URL: https://issues.apache.org/jira/browse/THRIFT-5069
Project: Thrift
Issue Type: Improvement
Components: Go - Library
Reporter: Yuxuan Wang
Currently TSerializer is resource pool friendly (see
[here|https://github.com/reddit/baseplate.go/blob/7b73f185eacd319a018df85d683fb2c29b50e2a9/events/events.go#L105-L111]
for an example), but TDeserializer is not. When putting a TDeserializer back
into resource pool, some extra works need to be done:
{code:go}
defer func() {
deserializer.Transport.(*thrift.TMemoryBuffer).Reset()
deserializerPool.Put(deserializer)
}()
{code}
If we change the type of TDeserializer.Transport to *TMemoryBuffer, and also
call Transport.Reset() at the beginning of Read and ReadString (we already do
both in TSerializer), it will make it more resource pool friendly.
This will be a breaking change, though.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)