zerosnake0 commented on pull request #2181: URL: https://github.com/apache/thrift/pull/2181#issuecomment-722915472
> Resolving a real issue sounds like a fitting case of "necessary", won't you think? > > In the JIRA ticket me and Can discussed how to implement it, including the alternative of doing it on transport level (`TTransport`). Doing it on transport level would also be a breaking change, and we made a choice to do a breaking change on `TProtocol` over `TTransport`. > > On hindsight yes the loop retry fits more naturally in TTransport, but some problems of that are: > > 1. As Can described in the JIRA ticket discussion, `TProtocol` implementations in the wild are much rarer than `TTranposrt` implementations. > 2. Adding context into `TTransport.Read` will make it no longer an implementation of `io.Reader`, which breaks a lot of other things. > 3. In the vast majority of cases this is really only needed for the first read (vs. every read). 2. When i say put timeout in transport, i do not mean to put context to it. I suggest you take a look at the golang official net/http implementation before any furthur discussion ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
