)]}'
{
  "commit": "34057069f4ab13dc4433c68d368737ebeafcccdc",
  "tree": "5bd1741f24a066960d6307c921dc1e9ec4f96b9d",
  "parents": [
    "84f0e6f92b10139f986b1756e149a7d9de270cdc"
  ],
  "author": {
    "name": "Brad Fitzpatrick",
    "email": "bradfitz@golang.org",
    "time": "Tue May 09 12:22:37 2017 -0700"
  },
  "committer": {
    "name": "Brad Fitzpatrick",
    "email": "bradfitz@golang.org",
    "time": "Mon May 15 16:52:29 2017 +0000"
  },
  "message": "http2: reduce the number of select cases in serverConn.server\n\nThis drops the number of select cases in serverConn.server from 10 to\n6. It was 7 in Go 1.7. It increased to 10 in Go 1.8.\n\n* replace testing-only testHookCh with always-on grab-bag serveMsgCh\n  to be used for both test purposes, and infrequently used message\n  types\n\n* remove the settingsTimer.C case for the initial settings timer\n  and use serveMsgCh and time.AfterFunc instead\n\n* ... and do the same for the idle timeout timer.\n\n* ... and for the shutdown timer.\n\n* remove wantStartPushCh and just send the *startPushRequest to\n  serveMsgCh too\n\nI could go further with this (and plan to, later), but these are the\nsafe and easy ones that don\u0027t require more work elsewhere.\n\nThe speed gets better the more the request/response go via the\nserverConn.serve loop. (once per Request.Body.Read or\nResponseWriter.Flush):\n\n  name            old time/op    new time/op  delta\n  ServerGets-4    138µs ± 3%     134µs ± 2%   -2.54%   (p\u003d0.002 n\u003d10+10)\n  ServerPosts-4   176µs ±27%     154µs ± 2%   -12.62%  (p\u003d0.011 n\u003d10+10)\n\nUpdates kubernetes/kubernetes#45216\nUpdates golang/go#20302\n\nChange-Id: I18019554089d7e3d76355d7137b5957e9597e803\nReviewed-on: https://go-review.googlesource.com/43034\nRun-TryBot: Brad Fitzpatrick \u003cbradfitz@golang.org\u003e\nTryBot-Result: Gobot Gobot \u003cgobot@golang.org\u003e\nReviewed-by: Tom Bergan \u003ctombergan@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2aba2bed3a69ebfd777c26feffde05f0d9572577",
      "old_mode": 33188,
      "old_path": "http2/server.go",
      "new_id": "3175a08c68566d1c12c11401482b6305f0ede8d4",
      "new_mode": 33188,
      "new_path": "http2/server.go"
    },
    {
      "type": "modify",
      "old_id": "f70edd3c72da1f0de0adbb77783cb6ac8aa81e64",
      "old_mode": 33188,
      "old_path": "http2/server_push_test.go",
      "new_id": "918fd30dc4d5537b3410d3297d28013623113cb9",
      "new_mode": 33188,
      "new_path": "http2/server_push_test.go"
    },
    {
      "type": "modify",
      "old_id": "444968384769bba3714b2f6ac45c80edb313d143",
      "old_mode": 33188,
      "old_path": "http2/server_test.go",
      "new_id": "5cb249056eef5989b199d1813d837d82ac27d9cc",
      "new_mode": 33188,
      "new_path": "http2/server_test.go"
    }
  ]
}
