Minor fixes to TZlibTransport ------------------------------
Key: THRIFT-1564 URL: https://issues.apache.org/jira/browse/THRIFT-1564 Project: Thrift Issue Type: Improvement Components: C++ - Library Reporter: Dave Watson Priority: Minor Subject: [PATCH 6/15] Minor fixes to TZlibTransport Summary: 1. Implement peek() : this avoid the constant exception handling on TNonblockingServer side to discover that there is no more data to read 2. Make zlib transport do a Z_FULL_FLUSH on flush(). This causes all lzw state to be thrown away and prevents dictionaries from being reused for unrelated requests - http://www.bolet.org/~pornin/deflate-flush.html Both these fixes are an attempt to fix an issue that I am seeing - 2x timeouts when connecting over zlib + framed as opposed to framed only, for servers that are not really CPU-bound. Test Plan: 1.Test with a simple client and server to verify that TNonblockingServer does not do handle the 'No more data to read' exception after the peek() is implemented. 2. Run a prod client with Z_FULL_FLUSH and verify no serious changes occur (did not push server with this fix). Also verified that current users of TZlibTransport only call finish and do not call flush() -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira