{"action":"created","comment":{"url":"https://api.github.com/repos/grpc/grpc/pulls/comments/33162086","id":33162086,"diff_hunk":"@@ -46,70 +46,18 @@ typedef struct {\n   gpr_uint8 length;\n } b64_huff_sym;\n \n-static const b64_huff_sym huff_alphabet[64] = {{0x21, 6},\n-                                               {0x5d, 7},\n-                                               {0x5e, 7},\n-                                               {0x5f, 7},\n-                                               {0x60, 7},\n-                                               {0x61, 7},\n-                                               {0x62, 7},\n-                                               {0x63, 7},\n-                                               {0x64, 7},\n-                                               {0x65, 7},\n-                                               {0x66, 7},\n-                                               {0x67, 7},\n-                                               {0x68, 7},\n-                                               {0x69, 7},\n-                                               {0x6a, 7},\n-                                               {0x6b, 7},\n-                                               {0x6c, 7},\n-                                               {0x6d, 7},\n-                                               {0x6e, 7},\n-                                               {0x6f, 7},\n-                                               {0x70, 7},\n-                                               {0x71, 7},\n-                                               {0x72, 7},\n-                                               {0xfc, 8},\n-                                               {0x73, 7},\n-                                               {0xfd, 8},\n-                                               {0x3, 5},\n-                                               {0x23, 6},\n-                                               {0x4, 5},\n-                                               {0x24, 6},\n-                                               {0x5, 5},\n-                                               {0x25, 6},\n-                                               {0x26, 6},\n-                                               {0x27, 6},\n-                                               {0x6, 5},\n-                                               {0x74, 7},\n-                                               {0x75, 7},\n-                                               {0x28, 6},\n-                                               {0x29, 6},\n-                                               {0x2a, 6},\n-                                               {0x7, 5},\n-                                               {0x2b, 6},\n-                                               {0x76, 7},\n-                                               {0x2c, 6},\n-                                               {0x8, 5},\n-                                               {0x9, 5},\n-                                               {0x2d, 6},\n-                                               {0x77, 7},\n-                                               {0x78, 7},\n-                                               {0x79, 7},\n-                                               {0x7a, 7},\n-                                               {0x7b, 7},\n-                                               {0x0, 5},\n-                                               {0x1, 5},\n-                                               {0x2, 5},\n-                                               {0x19, 6},\n-                                               {0x1a, 6},\n-                                               {0x1b, 6},\n-                                               {0x1c, 6},\n-                                               {0x1d, 6},\n-                                               {0x1e, 6},\n-                                               {0x1f, 6},\n-                                               {0x7fb, 11},\n-                                               {0x18, 6}};\n+static const b64_huff_sym huff_alphabet[64] = {\n+    {0x21, 6}, {0x5d, 7}, {0x5e, 7},   {0x5f, 7}, {0x60, 7}, {0x61, 7},\n+    {0x62, 7}, {0x63, 7}, {0x64, 7},   {0x65, 7}, {0x66, 7}, {0x67, 7},\n+    {0x68, 7}, {0x69, 7}, {0x6a, 7},   {0x6b, 7}, {0x6c, 7}, {0x6d, 7},\n+    {0x6e, 7}, {0x6f, 7}, {0x70, 7},   {0x71, 7}, {0x72, 7}, {0xfc, 8},\n+    {0x73, 7}, {0xfd, 8}, {0x3, 5},    {0x23, 6}, {0x4, 5},  {0x24, 6},\n+    {0x5, 5},  {0x25, 6}, {0x26, 6},   {0x27, 6}, {0x6, 5},  {0x74, 7},\n+    {0x75, 7}, {0x28, 6}, {0x29, 6},   {0x2a, 6}, {0x7, 5},  {0x2b, 6},\n+    {0x76, 7}, {0x2c, 6}, {0x8, 5},    {0x9, 5},  {0x2d, 6}, {0x77, 7},\n+    {0x78, 7}, {0x79, 7}, {0x7a, 7},   {0x7b, 7}, {0x0, 5},  {0x1, 5},\n+    {0x2, 5},  {0x19, 6}, {0x1a, 6},   {0x1b, 6}, {0x1c, 6}, {0x1d, 6},\n+    {0x1e, 6}, {0x1f, 6}, {0x7fb, 11}, {0x18, 6}};\n ","path":"src/core/transport/chttp2/bin_encoder.c","position":80,"original_position":80,"commit_id":"98bf7e6517aa6977a1d7be459143c13e28eb5e3c","original_commit_id":"949b6ee7962aa01a6d3940380d1c3ecc85e85f4a","user":{"login":"ctiller","id":10120821,"avatar_url":"https://avatars.githubusercontent.com/u/10120821?v=3","gravatar_id":"","url":"https://api.github.com/users/ctiller","html_url":"https://github.com/ctiller","followers_url":"https://api.github.com/users/ctiller/followers","following_url":"https://api.github.com/users/ctiller/following{/other_user}","gists_url":"https://api.github.com/users/ctiller/gists{/gist_id}","starred_url":"https://api.github.com/users/ctiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ctiller/subscriptions","organizations_url":"https://api.github.com/users/ctiller/orgs","repos_url":"https://api.github.com/users/ctiller/repos","events_url":"https://api.github.com/users/ctiller/events{/privacy}","received_events_url":"https://api.github.com/users/ctiller/received_events","type":"User","site_admin":false},"body":"Way prettier now though.","created_at":"2015-06-24T15:47:41Z","updated_at":"2015-06-24T15:47:41Z","html_url":"https://github.com/grpc/grpc/pull/2149#discussion_r33162086","pull_request_url":"https://api.github.com/repos/grpc/grpc/pulls/2149","_links":{"self":{"href":"https://api.github.com/repos/grpc/grpc/pulls/comments/33162086"},"html":{"href":"https://github.com/grpc/grpc/pull/2149#discussion_r33162086"},"pull_request":{"href":"https://api.github.com/repos/grpc/grpc/pulls/2149"}}},"pull_request":{"url":"https://api.github.com/repos/grpc/grpc/pulls/2149","id":38154526,"html_url":"https://github.com/grpc/grpc/pull/2149","diff_url":"https://github.com/grpc/grpc/pull/2149.diff","patch_url":"https://github.com/grpc/grpc/pull/2149.patch","issue_url":"https://api.github.com/repos/grpc/grpc/issues/2149","number":2149,"state":"open","locked":false,"title":"Initial transport lock split up","user":{"login":"ctiller","id":10120821,"avatar_url":"https://avatars.githubusercontent.com/u/10120821?v=3","gravatar_id":"","url":"https://api.github.com/users/ctiller","html_url":"https://github.com/ctiller","followers_url":"https://api.github.com/users/ctiller/followers","following_url":"https://api.github.com/users/ctiller/following{/other_user}","gists_url":"https://api.github.com/users/ctiller/gists{/gist_id}","starred_url":"https://api.github.com/users/ctiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ctiller/subscriptions","organizations_url":"https://api.github.com/users/ctiller/orgs","repos_url":"https://api.github.com/users/ctiller/repos","events_url":"https://api.github.com/users/ctiller/events{/privacy}","received_events_url":"https://api.github.com/users/ctiller/received_events","type":"User","site_admin":false},"body":"I have additional work in progress on top of this, but I wanted to get this visible earlier.\r\n\r\nThis change separates parsing from the main lock, allowing both reads and writes to proceed independently.\r\n\r\nThe next change will be to allow work queuing without taking the main lock to further reduce contention.\r\n\r\nFixes #200 \r\nFixes #2146 once #2152 is in","created_at":"2015-06-19T22:41:37Z","updated_at":"2015-06-24T15:47:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5095704d85e9262b79acb744b426798153d4e4d3","assignee":{"login":"vjpai","id":8864912,"avatar_url":"https://avatars.githubusercontent.com/u/8864912?v=3","gravatar_id":"","url":"https://api.github.com/users/vjpai","html_url":"https://github.com/vjpai","followers_url":"https://api.github.com/users/vjpai/followers","following_url":"https://api.github.com/users/vjpai/following{/other_user}","gists_url":"https://api.github.com/users/vjpai/gists{/gist_id}","starred_url":"https://api.github.com/users/vjpai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vjpai/subscriptions","organizations_url":"https://api.github.com/users/vjpai/orgs","repos_url":"https://api.github.com/users/vjpai/repos","events_url":"https://api.github.com/users/vjpai/events{/privacy}","received_events_url":"https://api.github.com/users/vjpai/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/grpc/grpc/pulls/2149/commits","review_comments_url":"https://api.github.com/repos/grpc/grpc/pulls/2149/comments","review_comment_url":"https://api.github.com/repos/grpc/grpc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/grpc/grpc/issues/2149/comments","statuses_url":"https://api.github.com/repos/grpc/grpc/statuses/98bf7e6517aa6977a1d7be459143c13e28eb5e3c","head":{"label":"ctiller:oops-i-split-it-again","ref":"oops-i-split-it-again","sha":"98bf7e6517aa6977a1d7be459143c13e28eb5e3c","user":{"login":"ctiller","id":10120821,"avatar_url":"https://avatars.githubusercontent.com/u/10120821?v=3","gravatar_id":"","url":"https://api.github.com/users/ctiller","html_url":"https://github.com/ctiller","followers_url":"https://api.github.com/users/ctiller/followers","following_url":"https://api.github.com/users/ctiller/following{/other_user}","gists_url":"https://api.github.com/users/ctiller/gists{/gist_id}","starred_url":"https://api.github.com/users/ctiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ctiller/subscriptions","organizations_url":"https://api.github.com/users/ctiller/orgs","repos_url":"https://api.github.com/users/ctiller/repos","events_url":"https://api.github.com/users/ctiller/events{/privacy}","received_events_url":"https://api.github.com/users/ctiller/received_events","type":"User","site_admin":false},"repo":{"id":31379631,"name":"grpc","full_name":"ctiller/grpc","owner":{"login":"ctiller","id":10120821,"avatar_url":"https://avatars.githubusercontent.com/u/10120821?v=3","gravatar_id":"","url":"https://api.github.com/users/ctiller","html_url":"https://github.com/ctiller","followers_url":"https://api.github.com/users/ctiller/followers","following_url":"https://api.github.com/users/ctiller/following{/other_user}","gists_url":"https://api.github.com/users/ctiller/gists{/gist_id}","starred_url":"https://api.github.com/users/ctiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ctiller/subscriptions","organizations_url":"https://api.github.com/users/ctiller/orgs","repos_url":"https://api.github.com/users/ctiller/repos","events_url":"https://api.github.com/users/ctiller/events{/privacy}","received_events_url":"https://api.github.com/users/ctiller/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ctiller/grpc","description":"The C based gRPC (C++, Node.js, Python, Ruby, Objective-C, PHP, C#)","fork":true,"url":"https://api.github.com/repos/ctiller/grpc","forks_url":"https://api.github.com/repos/ctiller/grpc/forks","keys_url":"https://api.github.com/repos/ctiller/grpc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ctiller/grpc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ctiller/grpc/teams","hooks_url":"https://api.github.com/repos/ctiller/grpc/hooks","issue_events_url":"https://api.github.com/repos/ctiller/grpc/issues/events{/number}","events_url":"https://api.github.com/repos/ctiller/grpc/events","assignees_url":"https://api.github.com/repos/ctiller/grpc/assignees{/user}","branches_url":"https://api.github.com/repos/ctiller/grpc/branches{/branch}","tags_url":"https://api.github.com/repos/ctiller/grpc/tags","blobs_url":"https://api.github.com/repos/ctiller/grpc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ctiller/grpc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ctiller/grpc/git/refs{/sha}","trees_url":"https://api.github.com/repos/ctiller/grpc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ctiller/grpc/statuses/{sha}","languages_url":"https://api.github.com/repos/ctiller/grpc/languages","stargazers_url":"https://api.github.com/repos/ctiller/grpc/stargazers","contributors_url":"https://api.github.com/repos/ctiller/grpc/contributors","subscribers_url":"https://api.github.com/repos/ctiller/grpc/subscribers","subscription_url":"https://api.github.com/repos/ctiller/grpc/subscription","commits_url":"https://api.github.com/repos/ctiller/grpc/commits{/sha}","git_commits_url":"https://api.github.com/repos/ctiller/grpc/git/commits{/sha}","comments_url":"https://api.github.com/repos/ctiller/grpc/comments{/number}","issue_comment_url":"https://api.github.com/repos/ctiller/grpc/issues/comments{/number}","contents_url":"https://api.github.com/repos/ctiller/grpc/contents/{+path}","compare_url":"https://api.github.com/repos/ctiller/grpc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ctiller/grpc/merges","archive_url":"https://api.github.com/repos/ctiller/grpc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ctiller/grpc/downloads","issues_url":"https://api.github.com/repos/ctiller/grpc/issues{/number}","pulls_url":"https://api.github.com/repos/ctiller/grpc/pulls{/number}","milestones_url":"https://api.github.com/repos/ctiller/grpc/milestones{/number}","notifications_url":"https://api.github.com/repos/ctiller/grpc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ctiller/grpc/labels{/name}","releases_url":"https://api.github.com/repos/ctiller/grpc/releases{/id}","created_at":"2015-02-26T17:36:22Z","updated_at":"2015-04-20T15:39:22Z","pushed_at":"2015-06-24T15:47:12Z","git_url":"git://github.com/ctiller/grpc.git","ssh_url":"git@github.com:ctiller/grpc.git","clone_url":"https://github.com/ctiller/grpc.git","svn_url":"https://github.com/ctiller/grpc","homepage":"","size":41919,"stargazers_count":2,"watchers_count":2,"language":"C","has_issues":false,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":2,"default_branch":"master"}},"base":{"label":"grpc:master","ref":"master","sha":"f8fedc43d76f171b8f87bb65dc5d253e67db996f","user":{"login":"grpc","id":7802525,"avatar_url":"https://avatars.githubusercontent.com/u/7802525?v=3","gravatar_id":"","url":"https://api.github.com/users/grpc","html_url":"https://github.com/grpc","followers_url":"https://api.github.com/users/grpc/followers","following_url":"https://api.github.com/users/grpc/following{/other_user}","gists_url":"https://api.github.com/users/grpc/gists{/gist_id}","starred_url":"https://api.github.com/users/grpc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grpc/subscriptions","organizations_url":"https://api.github.com/users/grpc/orgs","repos_url":"https://api.github.com/users/grpc/repos","events_url":"https://api.github.com/users/grpc/events{/privacy}","received_events_url":"https://api.github.com/users/grpc/received_events","type":"Organization","site_admin":false},"repo":{"id":27729880,"name":"grpc","full_name":"grpc/grpc","owner":{"login":"grpc","id":7802525,"avatar_url":"https://avatars.githubusercontent.com/u/7802525?v=3","gravatar_id":"","url":"https://api.github.com/users/grpc","html_url":"https://github.com/grpc","followers_url":"https://api.github.com/users/grpc/followers","following_url":"https://api.github.com/users/grpc/following{/other_user}","gists_url":"https://api.github.com/users/grpc/gists{/gist_id}","starred_url":"https://api.github.com/users/grpc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grpc/subscriptions","organizations_url":"https://api.github.com/users/grpc/orgs","repos_url":"https://api.github.com/users/grpc/repos","events_url":"https://api.github.com/users/grpc/events{/privacy}","received_events_url":"https://api.github.com/users/grpc/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/grpc/grpc","description":"The C based gRPC (C++, Node.js, Python, Ruby, Objective-C, PHP, C#)","fork":false,"url":"https://api.github.com/repos/grpc/grpc","forks_url":"https://api.github.com/repos/grpc/grpc/forks","keys_url":"https://api.github.com/repos/grpc/grpc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/grpc/grpc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/grpc/grpc/teams","hooks_url":"https://api.github.com/repos/grpc/grpc/hooks","issue_events_url":"https://api.github.com/repos/grpc/grpc/issues/events{/number}","events_url":"https://api.github.com/repos/grpc/grpc/events","assignees_url":"https://api.github.com/repos/grpc/grpc/assignees{/user}","branches_url":"https://api.github.com/repos/grpc/grpc/branches{/branch}","tags_url":"https://api.github.com/repos/grpc/grpc/tags","blobs_url":"https://api.github.com/repos/grpc/grpc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/grpc/grpc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/grpc/grpc/git/refs{/sha}","trees_url":"https://api.github.com/repos/grpc/grpc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/grpc/grpc/statuses/{sha}","languages_url":"https://api.github.com/repos/grpc/grpc/languages","stargazers_url":"https://api.github.com/repos/grpc/grpc/stargazers","contributors_url":"https://api.github.com/repos/grpc/grpc/contributors","subscribers_url":"https://api.github.com/repos/grpc/grpc/subscribers","subscription_url":"https://api.github.com/repos/grpc/grpc/subscription","commits_url":"https://api.github.com/repos/grpc/grpc/commits{/sha}","git_commits_url":"https://api.github.com/repos/grpc/grpc/git/commits{/sha}","comments_url":"https://api.github.com/repos/grpc/grpc/comments{/number}","issue_comment_url":"https://api.github.com/repos/grpc/grpc/issues/comments{/number}","contents_url":"https://api.github.com/repos/grpc/grpc/contents/{+path}","compare_url":"https://api.github.com/repos/grpc/grpc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/grpc/grpc/merges","archive_url":"https://api.github.com/repos/grpc/grpc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/grpc/grpc/downloads","issues_url":"https://api.github.com/repos/grpc/grpc/issues{/number}","pulls_url":"https://api.github.com/repos/grpc/grpc/pulls{/number}","milestones_url":"https://api.github.com/repos/grpc/grpc/milestones{/number}","notifications_url":"https://api.github.com/repos/grpc/grpc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/grpc/grpc/labels{/name}","releases_url":"https://api.github.com/repos/grpc/grpc/releases{/id}","created_at":"2014-12-08T18:58:53Z","updated_at":"2015-06-24T12:54:23Z","pushed_at":"2015-06-24T15:47:13Z","git_url":"git://github.com/grpc/grpc.git","ssh_url":"git@github.com:grpc/grpc.git","clone_url":"https://github.com/grpc/grpc.git","svn_url":"https://github.com/grpc/grpc","homepage":"","size":58745,"stargazers_count":2771,"watchers_count":2771,"language":"C","has_issues":true,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":390,"mirror_url":null,"open_issues_count":349,"forks":390,"open_issues":349,"watchers":2771,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/grpc/grpc/pulls/2149"},"html":{"href":"https://github.com/grpc/grpc/pull/2149"},"issue":{"href":"https://api.github.com/repos/grpc/grpc/issues/2149"},"comments":{"href":"https://api.github.com/repos/grpc/grpc/issues/2149/comments"},"review_comments":{"href":"https://api.github.com/repos/grpc/grpc/pulls/2149/comments"},"review_comment":{"href":"https://api.github.com/repos/grpc/grpc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/grpc/grpc/pulls/2149/commits"},"statuses":{"href":"https://api.github.com/repos/grpc/grpc/statuses/98bf7e6517aa6977a1d7be459143c13e28eb5e3c"}}}}