Use PhutilRope for Channel write buffers and make write buffer details public
Summary:
Ref T4241. Two changes:
- Use PhutilRope instead of plain string for the Channel write buffers. This makes it more consistent, and should improve performance in some cases.
- Expose information about buffer sizes as public. We need this in a future diff to be able to throttle reads when we're blocked on writes, since we have to be able to test if a write channel is blocked or not.
Test Plan: Ran arc unit. Ran git operations over SSH.
Reviewers: btrahan
Reviewed By: btrahan
CC: aran
Maniphest Tasks: T4241
Differential Revision: https://secure.phabricator.com/D7773