{"action":"closed","number":48,"pull_request":{"url":"https://api.github.com/repos/crystal-lang-tools/scry/pulls/48","id":171234350,"node_id":"MDExOlB1bGxSZXF1ZXN0MTcxMjM0MzUw","html_url":"https://github.com/crystal-lang-tools/scry/pull/48","diff_url":"https://github.com/crystal-lang-tools/scry/pull/48.diff","patch_url":"https://github.com/crystal-lang-tools/scry/pull/48.patch","issue_url":"https://api.github.com/repos/crystal-lang-tools/scry/issues/48","number":48,"state":"closed","locked":false,"title":"Implements concurrent requests","user":{"login":"faustinoaq","id":3067335,"node_id":"MDQ6VXNlcjMwNjczMzU=","avatar_url":"https://avatars2.githubusercontent.com/u/3067335?v=4","gravatar_id":"","url":"https://api.github.com/users/faustinoaq","html_url":"https://github.com/faustinoaq","followers_url":"https://api.github.com/users/faustinoaq/followers","following_url":"https://api.github.com/users/faustinoaq/following{/other_user}","gists_url":"https://api.github.com/users/faustinoaq/gists{/gist_id}","starred_url":"https://api.github.com/users/faustinoaq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/faustinoaq/subscriptions","organizations_url":"https://api.github.com/users/faustinoaq/orgs","repos_url":"https://api.github.com/users/faustinoaq/repos","events_url":"https://api.github.com/users/faustinoaq/events{/privacy}","received_events_url":"https://api.github.com/users/faustinoaq/received_events","type":"User","site_admin":false},"body":"This PR add concurrent channels to avoid blocking request, so we can list symbols, while searching for a implementation, or format a file while searching for semantic errors, and so on...\r\n\r\nBased in this pseudo-code:\r\n\r\n```crystal\r\nch = Channel(Nil).new\r\n\r\nloop do\r\n  spawn do\r\n    i = rand(10)\r\n    puts \"Receiving and processing request of #{i} seconds...\"\r\n    sleep i\r\n    ch.send nil\r\n  end\r\n\r\n  select\r\n  when ch.receive\r\n    puts \"Request has been finished!\"\r\n    next\r\n  else\r\n    puts \"sleeping...\"\r\n    sleep 1\r\n  end\r\nend\r\n```\r\n\r\nThis change had been suggested by @kofno [here](https://github.com/crystal-lang-tools/scry/pull/12#issuecomment-315239849) and @laginha87 [here](https://github.com/crystal-lang-tools/scry/pull/46#issuecomment-368306657)","created_at":"2018-02-25T15:06:36Z","updated_at":"2018-06-14T13:27:49Z","closed_at":"2018-06-14T13:27:49Z","merged_at":null,"merge_commit_sha":"9b3ef7783167192105fa6706b72055e8e9bf57dc","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[{"name":"scry","id":2441801,"node_id":"MDQ6VGVhbTI0NDE4MDE=","slug":"scry","description":"Responsible for Developing the scry Language Server","privacy":"closed","url":"https://api.github.com/teams/2441801","members_url":"https://api.github.com/teams/2441801/members{/member}","repositories_url":"https://api.github.com/teams/2441801/repos","permission":"pull"}],"labels":[{"id":895303738,"node_id":"MDU6TGFiZWw4OTUzMDM3Mzg=","url":"https://api.github.com/repos/crystal-lang-tools/scry/labels/on%20hold","name":"on hold","color":"d4c5f9","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/crystal-lang-tools/scry/pulls/48/commits","review_comments_url":"https://api.github.com/repos/crystal-lang-tools/scry/pulls/48/comments","review_comment_url":"https://api.github.com/repos/crystal-lang-tools/scry/pulls/comments{/number}","comments_url":"https://api.github.com/repos/crystal-lang-tools/scry/issues/48/comments","statuses_url":"https://api.github.com/repos/crystal-lang-tools/scry/statuses/4d1c8979b8e3db0fa18aa5a1e7f8cfb79f96b797","head":{"label":"crystal-lang-tools:fa/implement-concurrent-requests","ref":"fa/implement-concurrent-requests","sha":"4d1c8979b8e3db0fa18aa5a1e7f8cfb79f96b797","user":{"login":"crystal-lang-tools","id":14251061,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MjUxMDYx","avatar_url":"https://avatars0.githubusercontent.com/u/14251061?v=4","gravatar_id":"","url":"https://api.github.com/users/crystal-lang-tools","html_url":"https://github.com/crystal-lang-tools","followers_url":"https://api.github.com/users/crystal-lang-tools/followers","following_url":"https://api.github.com/users/crystal-lang-tools/following{/other_user}","gists_url":"https://api.github.com/users/crystal-lang-tools/gists{/gist_id}","starred_url":"https://api.github.com/users/crystal-lang-tools/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crystal-lang-tools/subscriptions","organizations_url":"https://api.github.com/users/crystal-lang-tools/orgs","repos_url":"https://api.github.com/users/crystal-lang-tools/repos","events_url":"https://api.github.com/users/crystal-lang-tools/events{/privacy}","received_events_url":"https://api.github.com/users/crystal-lang-tools/received_events","type":"Organization","site_admin":false},"repo":{"id":65130118,"node_id":"MDEwOlJlcG9zaXRvcnk2NTEzMDExOA==","name":"scry","full_name":"crystal-lang-tools/scry","owner":{"login":"crystal-lang-tools","id":14251061,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MjUxMDYx","avatar_url":"https://avatars0.githubusercontent.com/u/14251061?v=4","gravatar_id":"","url":"https://api.github.com/users/crystal-lang-tools","html_url":"https://github.com/crystal-lang-tools","followers_url":"https://api.github.com/users/crystal-lang-tools/followers","following_url":"https://api.github.com/users/crystal-lang-tools/following{/other_user}","gists_url":"https://api.github.com/users/crystal-lang-tools/gists{/gist_id}","starred_url":"https://api.github.com/users/crystal-lang-tools/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crystal-lang-tools/subscriptions","organizations_url":"https://api.github.com/users/crystal-lang-tools/orgs","repos_url":"https://api.github.com/users/crystal-lang-tools/repos","events_url":"https://api.github.com/users/crystal-lang-tools/events{/privacy}","received_events_url":"https://api.github.com/users/crystal-lang-tools/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/crystal-lang-tools/scry","description":"Scry is a code analysis server for https://crystal-lang.org","fork":false,"url":"https://api.github.com/repos/crystal-lang-tools/scry","forks_url":"https://api.github.com/repos/crystal-lang-tools/scry/forks","keys_url":"https://api.github.com/repos/crystal-lang-tools/scry/keys{/key_id}","collaborators_url":"https://api.github.com/repos/crystal-lang-tools/scry/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/crystal-lang-tools/scry/teams","hooks_url":"https://api.github.com/repos/crystal-lang-tools/scry/hooks","issue_events_url":"https://api.github.com/repos/crystal-lang-tools/scry/issues/events{/number}","events_url":"https://api.github.com/repos/crystal-lang-tools/scry/events","assignees_url":"https://api.github.com/repos/crystal-lang-tools/scry/assignees{/user}","branches_url":"https://api.github.com/repos/crystal-lang-tools/scry/branches{/branch}","tags_url":"https://api.github.com/repos/crystal-lang-tools/scry/tags","blobs_url":"https://api.github.com/repos/crystal-lang-tools/scry/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/crystal-lang-tools/scry/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/crystal-lang-tools/scry/git/refs{/sha}","trees_url":"https://api.github.com/repos/crystal-lang-tools/scry/git/trees{/sha}","statuses_url":"https://api.github.com/repos/crystal-lang-tools/scry/statuses/{sha}","languages_url":"https://api.github.com/repos/crystal-lang-tools/scry/languages","stargazers_url":"https://api.github.com/repos/crystal-lang-tools/scry/stargazers","contributors_url":"https://api.github.com/repos/crystal-lang-tools/scry/contributors","subscribers_url":"https://api.github.com/repos/crystal-lang-tools/scry/subscribers","subscription_url":"https://api.github.com/repos/crystal-lang-tools/scry/subscription","commits_url":"https://api.github.com/repos/crystal-lang-tools/scry/commits{/sha}","git_commits_url":"https://api.github.com/repos/crystal-lang-tools/scry/git/commits{/sha}","comments_url":"https://api.github.com/repos/crystal-lang-tools/scry/comments{/number}","issue_comment_url":"https://api.github.com/repos/crystal-lang-tools/scry/issues/comments{/number}","contents_url":"https://api.github.com/repos/crystal-lang-tools/scry/contents/{+path}","compare_url":"https://api.github.com/repos/crystal-lang-tools/scry/compare/{base}...{head}","merges_url":"https://api.github.com/repos/crystal-lang-tools/scry/merges","archive_url":"https://api.github.com/repos/crystal-lang-tools/scry/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/crystal-lang-tools/scry/downloads","issues_url":"https://api.github.com/repos/crystal-lang-tools/scry/issues{/number}","pulls_url":"https://api.github.com/repos/crystal-lang-tools/scry/pulls{/number}","milestones_url":"https://api.github.com/repos/crystal-lang-tools/scry/milestones{/number}","notifications_url":"https://api.github.com/repos/crystal-lang-tools/scry/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/crystal-lang-tools/scry/labels{/name}","releases_url":"https://api.github.com/repos/crystal-lang-tools/scry/releases{/id}","deployments_url":"https://api.github.com/repos/crystal-lang-tools/scry/deployments","created_at":"2016-08-07T11:35:47Z","updated_at":"2018-06-07T23:32:21Z","pushed_at":"2018-06-14T13:27:23Z","git_url":"git://github.com/crystal-lang-tools/scry.git","ssh_url":"git@github.com:crystal-lang-tools/scry.git","clone_url":"https://github.com/crystal-lang-tools/scry.git","svn_url":"https://github.com/crystal-lang-tools/scry","homepage":"","size":269,"stargazers_count":128,"watchers_count":128,"language":"Crystal","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":11,"mirror_url":null,"archived":false,"open_issues_count":30,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":11,"open_issues":30,"watchers":128,"default_branch":"master"}},"base":{"label":"crystal-lang-tools:master","ref":"master","sha":"7ea71f920eeb8ac5ba406608f828c5f028c7bad1","user":{"login":"crystal-lang-tools","id":14251061,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MjUxMDYx","avatar_url":"https://avatars0.githubusercontent.com/u/14251061?v=4","gravatar_id":"","url":"https://api.github.com/users/crystal-lang-tools","html_url":"https://github.com/crystal-lang-tools","followers_url":"https://api.github.com/users/crystal-lang-tools/followers","following_url":"https://api.github.com/users/crystal-lang-tools/following{/other_user}","gists_url":"https://api.github.com/users/crystal-lang-tools/gists{/gist_id}","starred_url":"https://api.github.com/users/crystal-lang-tools/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crystal-lang-tools/subscriptions","organizations_url":"https://api.github.com/users/crystal-lang-tools/orgs","repos_url":"https://api.github.com/users/crystal-lang-tools/repos","events_url":"https://api.github.com/users/crystal-lang-tools/events{/privacy}","received_events_url":"https://api.github.com/users/crystal-lang-tools/received_events","type":"Organization","site_admin":false},"repo":{"id":65130118,"node_id":"MDEwOlJlcG9zaXRvcnk2NTEzMDExOA==","name":"scry","full_name":"crystal-lang-tools/scry","owner":{"login":"crystal-lang-tools","id":14251061,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MjUxMDYx","avatar_url":"https://avatars0.githubusercontent.com/u/14251061?v=4","gravatar_id":"","url":"https://api.github.com/users/crystal-lang-tools","html_url":"https://github.com/crystal-lang-tools","followers_url":"https://api.github.com/users/crystal-lang-tools/followers","following_url":"https://api.github.com/users/crystal-lang-tools/following{/other_user}","gists_url":"https://api.github.com/users/crystal-lang-tools/gists{/gist_id}","starred_url":"https://api.github.com/users/crystal-lang-tools/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crystal-lang-tools/subscriptions","organizations_url":"https://api.github.com/users/crystal-lang-tools/orgs","repos_url":"https://api.github.com/users/crystal-lang-tools/repos","events_url":"https://api.github.com/users/crystal-lang-tools/events{/privacy}","received_events_url":"https://api.github.com/users/crystal-lang-tools/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/crystal-lang-tools/scry","description":"Scry is a code analysis server for https://crystal-lang.org","fork":false,"url":"https://api.github.com/repos/crystal-lang-tools/scry","forks_url":"https://api.github.com/repos/crystal-lang-tools/scry/forks","keys_url":"https://api.github.com/repos/crystal-lang-tools/scry/keys{/key_id}","collaborators_url":"https://api.github.com/repos/crystal-lang-tools/scry/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/crystal-lang-tools/scry/teams","hooks_url":"https://api.github.com/repos/crystal-lang-tools/scry/hooks","issue_events_url":"https://api.github.com/repos/crystal-lang-tools/scry/issues/events{/number}","events_url":"https://api.github.com/repos/crystal-lang-tools/scry/events","assignees_url":"https://api.github.com/repos/crystal-lang-tools/scry/assignees{/user}","branches_url":"https://api.github.com/repos/crystal-lang-tools/scry/branches{/branch}","tags_url":"https://api.github.com/repos/crystal-lang-tools/scry/tags","blobs_url":"https://api.github.com/repos/crystal-lang-tools/scry/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/crystal-lang-tools/scry/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/crystal-lang-tools/scry/git/refs{/sha}","trees_url":"https://api.github.com/repos/crystal-lang-tools/scry/git/trees{/sha}","statuses_url":"https://api.github.com/repos/crystal-lang-tools/scry/statuses/{sha}","languages_url":"https://api.github.com/repos/crystal-lang-tools/scry/languages","stargazers_url":"https://api.github.com/repos/crystal-lang-tools/scry/stargazers","contributors_url":"https://api.github.com/repos/crystal-lang-tools/scry/contributors","subscribers_url":"https://api.github.com/repos/crystal-lang-tools/scry/subscribers","subscription_url":"https://api.github.com/repos/crystal-lang-tools/scry/subscription","commits_url":"https://api.github.com/repos/crystal-lang-tools/scry/commits{/sha}","git_commits_url":"https://api.github.com/repos/crystal-lang-tools/scry/git/commits{/sha}","comments_url":"https://api.github.com/repos/crystal-lang-tools/scry/comments{/number}","issue_comment_url":"https://api.github.com/repos/crystal-lang-tools/scry/issues/comments{/number}","contents_url":"https://api.github.com/repos/crystal-lang-tools/scry/contents/{+path}","compare_url":"https://api.github.com/repos/crystal-lang-tools/scry/compare/{base}...{head}","merges_url":"https://api.github.com/repos/crystal-lang-tools/scry/merges","archive_url":"https://api.github.com/repos/crystal-lang-tools/scry/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/crystal-lang-tools/scry/downloads","issues_url":"https://api.github.com/repos/crystal-lang-tools/scry/issues{/number}","pulls_url":"https://api.github.com/repos/crystal-lang-tools/scry/pulls{/number}","milestones_url":"https://api.github.com/repos/crystal-lang-tools/scry/milestones{/number}","notifications_url":"https://api.github.com/repos/crystal-lang-tools/scry/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/crystal-lang-tools/scry/labels{/name}","releases_url":"https://api.github.com/repos/crystal-lang-tools/scry/releases{/id}","deployments_url":"https://api.github.com/repos/crystal-lang-tools/scry/deployments","created_at":"2016-08-07T11:35:47Z","updated_at":"2018-06-07T23:32:21Z","pushed_at":"2018-06-14T13:27:23Z","git_url":"git://github.com/crystal-lang-tools/scry.git","ssh_url":"git@github.com:crystal-lang-tools/scry.git","clone_url":"https://github.com/crystal-lang-tools/scry.git","svn_url":"https://github.com/crystal-lang-tools/scry","homepage":"","size":269,"stargazers_count":128,"watchers_count":128,"language":"Crystal","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":11,"mirror_url":null,"archived":false,"open_issues_count":30,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":11,"open_issues":30,"watchers":128,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/crystal-lang-tools/scry/pulls/48"},"html":{"href":"https://github.com/crystal-lang-tools/scry/pull/48"},"issue":{"href":"https://api.github.com/repos/crystal-lang-tools/scry/issues/48"},"comments":{"href":"https://api.github.com/repos/crystal-lang-tools/scry/issues/48/comments"},"review_comments":{"href":"https://api.github.com/repos/crystal-lang-tools/scry/pulls/48/comments"},"review_comment":{"href":"https://api.github.com/repos/crystal-lang-tools/scry/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/crystal-lang-tools/scry/pulls/48/commits"},"statuses":{"href":"https://api.github.com/repos/crystal-lang-tools/scry/statuses/4d1c8979b8e3db0fa18aa5a1e7f8cfb79f96b797"}},"author_association":"MEMBER","merged":false,"mergeable":true,"rebaseable":false,"mergeable_state":"unstable","merged_by":null,"comments":22,"review_comments":6,"maintainer_can_modify":false,"commits":12,"additions":72,"deletions":5,"changed_files":2}}
{"actor":{"display_login":"faustinoaq"}}