{"action":"created","comment":{"url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/pulls/comments/87346451","pull_request_review_id":7961530,"id":87346451,"diff_hunk":"@@ -393,149 +389,66 @@ export abstract class OmnisharpServer {\n \n     // --- requests et al\n \n-    public makeRequest<TResponse>(path: string, data?: any, token?: vscode.CancellationToken): Promise<TResponse> {\n+    public makeRequest<TResponse>(command: string, data?: any, token?: vscode.CancellationToken): Promise<TResponse> {\n \n         if (this._getState() !== ServerState.Started) {\n             return Promise.reject<TResponse>('server has been stopped or not started');\n         }\n \n+        console.log(`makeRequest: command=${command}`);\n+\n         let startTime: number;\n         let request: Request;\n \n         let promise = new Promise<TResponse>((resolve, reject) => {\n             startTime = Date.now();\n \n             request = {\n-                path,\n+                command,\n                 data,\n                 onSuccess: value => resolve(value),\n-                onError: err => reject(err),\n-                _enqueued: Date.now()\n+                onError: err => reject(err)\n             };\n \n-            this._queue.push(request);\n+            this._requestQueue.enqueue(request);\n \n-            if (this._getState() === ServerState.Started && !this._isProcessingQueue) {\n-                this._processQueue();\n+            if (this._getState() === ServerState.Started) {\n+                this._requestQueue.drain();","path":"src/omnisharp/server.ts","position":192,"original_position":185,"commit_id":"57ffb02b4a7ce80a000d69d9eef100ab5aca2f9b","original_commit_id":"82bc2a45cea0a0caf17182decf12e679d44ccb81","user":{"login":"DustinCampbell","id":116161,"avatar_url":"https://avatars.githubusercontent.com/u/116161?v=3","gravatar_id":"","url":"https://api.github.com/users/DustinCampbell","html_url":"https://github.com/DustinCampbell","followers_url":"https://api.github.com/users/DustinCampbell/followers","following_url":"https://api.github.com/users/DustinCampbell/following{/other_user}","gists_url":"https://api.github.com/users/DustinCampbell/gists{/gist_id}","starred_url":"https://api.github.com/users/DustinCampbell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DustinCampbell/subscriptions","organizations_url":"https://api.github.com/users/DustinCampbell/orgs","repos_url":"https://api.github.com/users/DustinCampbell/repos","events_url":"https://api.github.com/users/DustinCampbell/events{/privacy}","received_events_url":"https://api.github.com/users/DustinCampbell/received_events","type":"User","site_admin":false},"body":"You're right -- thanks!","created_at":"2016-11-10T08:23:42Z","updated_at":"2016-11-10T08:23:42Z","html_url":"https://github.com/OmniSharp/omnisharp-vscode/pull/902#discussion_r87346451","pull_request_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/pulls/902","_links":{"self":{"href":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/pulls/comments/87346451"},"html":{"href":"https://github.com/OmniSharp/omnisharp-vscode/pull/902#discussion_r87346451"},"pull_request":{"href":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/pulls/902"}}},"pull_request":{"url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/pulls/902","id":93041134,"html_url":"https://github.com/OmniSharp/omnisharp-vscode/pull/902","diff_url":"https://github.com/OmniSharp/omnisharp-vscode/pull/902.diff","patch_url":"https://github.com/OmniSharp/omnisharp-vscode/pull/902.patch","issue_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/issues/902","number":902,"state":"open","locked":false,"title":"Allow multiple simultaneous requests to be sent to OmniSharp server","user":{"login":"DustinCampbell","id":116161,"avatar_url":"https://avatars.githubusercontent.com/u/116161?v=3","gravatar_id":"","url":"https://api.github.com/users/DustinCampbell","html_url":"https://github.com/DustinCampbell","followers_url":"https://api.github.com/users/DustinCampbell/followers","following_url":"https://api.github.com/users/DustinCampbell/following{/other_user}","gists_url":"https://api.github.com/users/DustinCampbell/gists{/gist_id}","starred_url":"https://api.github.com/users/DustinCampbell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DustinCampbell/subscriptions","organizations_url":"https://api.github.com/users/DustinCampbell/orgs","repos_url":"https://api.github.com/users/DustinCampbell/repos","events_url":"https://api.github.com/users/DustinCampbell/events{/privacy}","received_events_url":"https://api.github.com/users/DustinCampbell/received_events","type":"User","site_admin":false},"body":"Communication with the OmniSharp server happens in a very serial fashion: make a request and wait for the response. This is done to ensure that critical communication, such as updating a buffer during typing, is processed quickly. However, that means that we'll wait on extremely long running requests that don't need to happen serially, such as waiting for all diagnostics to be returned for a solution.\r\n\r\nThis change splits requests into three queues based on the type of request. High priority requests, such as buffer changes, are still handled serially. Most other requests are placed on a queue that is allowed to make up to 8 simultaneous requests at a time. Other requests (especially long-running requests) are placed on a \"deferred\" queue that allows a much smaller number of simultaneous requests (maximum 2).\r\n\r\ncc @david-driscoll ","created_at":"2016-11-09T21:22:16Z","updated_at":"2016-11-10T08:23:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3417123ef75bd5dc6b84ce2997d89b6f2a88fe94","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/pulls/902/commits","review_comments_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/pulls/902/comments","review_comment_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/issues/902/comments","statuses_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/statuses/57ffb02b4a7ce80a000d69d9eef100ab5aca2f9b","head":{"label":"DustinCampbell:concurrent-server","ref":"concurrent-server","sha":"57ffb02b4a7ce80a000d69d9eef100ab5aca2f9b","user":{"login":"DustinCampbell","id":116161,"avatar_url":"https://avatars.githubusercontent.com/u/116161?v=3","gravatar_id":"","url":"https://api.github.com/users/DustinCampbell","html_url":"https://github.com/DustinCampbell","followers_url":"https://api.github.com/users/DustinCampbell/followers","following_url":"https://api.github.com/users/DustinCampbell/following{/other_user}","gists_url":"https://api.github.com/users/DustinCampbell/gists{/gist_id}","starred_url":"https://api.github.com/users/DustinCampbell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DustinCampbell/subscriptions","organizations_url":"https://api.github.com/users/DustinCampbell/orgs","repos_url":"https://api.github.com/users/DustinCampbell/repos","events_url":"https://api.github.com/users/DustinCampbell/events{/privacy}","received_events_url":"https://api.github.com/users/DustinCampbell/received_events","type":"User","site_admin":false},"repo":{"id":50045395,"name":"omnisharp-vscode","full_name":"DustinCampbell/omnisharp-vscode","owner":{"login":"DustinCampbell","id":116161,"avatar_url":"https://avatars.githubusercontent.com/u/116161?v=3","gravatar_id":"","url":"https://api.github.com/users/DustinCampbell","html_url":"https://github.com/DustinCampbell","followers_url":"https://api.github.com/users/DustinCampbell/followers","following_url":"https://api.github.com/users/DustinCampbell/following{/other_user}","gists_url":"https://api.github.com/users/DustinCampbell/gists{/gist_id}","starred_url":"https://api.github.com/users/DustinCampbell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DustinCampbell/subscriptions","organizations_url":"https://api.github.com/users/DustinCampbell/orgs","repos_url":"https://api.github.com/users/DustinCampbell/repos","events_url":"https://api.github.com/users/DustinCampbell/events{/privacy}","received_events_url":"https://api.github.com/users/DustinCampbell/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/DustinCampbell/omnisharp-vscode","description":"Omnisharp goodness for VS Code","fork":true,"url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode","forks_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/forks","keys_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/teams","hooks_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/hooks","issue_events_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/issues/events{/number}","events_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/events","assignees_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/assignees{/user}","branches_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/branches{/branch}","tags_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/tags","blobs_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/git/refs{/sha}","trees_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/statuses/{sha}","languages_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/languages","stargazers_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/stargazers","contributors_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/contributors","subscribers_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/subscribers","subscription_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/subscription","commits_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/commits{/sha}","git_commits_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/git/commits{/sha}","comments_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/comments{/number}","issue_comment_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/issues/comments{/number}","contents_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/contents/{+path}","compare_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/merges","archive_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/downloads","issues_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/issues{/number}","pulls_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/pulls{/number}","milestones_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/milestones{/number}","notifications_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/labels{/name}","releases_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/releases{/id}","deployments_url":"https://api.github.com/repos/DustinCampbell/omnisharp-vscode/deployments","created_at":"2016-01-20T17:03:00Z","updated_at":"2016-01-20T17:03:00Z","pushed_at":"2016-11-09T21:45:22Z","git_url":"git://github.com/DustinCampbell/omnisharp-vscode.git","ssh_url":"git@github.com:DustinCampbell/omnisharp-vscode.git","clone_url":"https://github.com/DustinCampbell/omnisharp-vscode.git","svn_url":"https://github.com/DustinCampbell/omnisharp-vscode","homepage":null,"size":805,"stargazers_count":0,"watchers_count":0,"language":"TypeScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"OmniSharp:master","ref":"master","sha":"26e2d1244b0c879ef5c32e470c999b926fd20639","user":{"login":"OmniSharp","id":9420663,"avatar_url":"https://avatars.githubusercontent.com/u/9420663?v=3","gravatar_id":"","url":"https://api.github.com/users/OmniSharp","html_url":"https://github.com/OmniSharp","followers_url":"https://api.github.com/users/OmniSharp/followers","following_url":"https://api.github.com/users/OmniSharp/following{/other_user}","gists_url":"https://api.github.com/users/OmniSharp/gists{/gist_id}","starred_url":"https://api.github.com/users/OmniSharp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OmniSharp/subscriptions","organizations_url":"https://api.github.com/users/OmniSharp/orgs","repos_url":"https://api.github.com/users/OmniSharp/repos","events_url":"https://api.github.com/users/OmniSharp/events{/privacy}","received_events_url":"https://api.github.com/users/OmniSharp/received_events","type":"Organization","site_admin":false},"repo":{"id":47341961,"name":"omnisharp-vscode","full_name":"OmniSharp/omnisharp-vscode","owner":{"login":"OmniSharp","id":9420663,"avatar_url":"https://avatars.githubusercontent.com/u/9420663?v=3","gravatar_id":"","url":"https://api.github.com/users/OmniSharp","html_url":"https://github.com/OmniSharp","followers_url":"https://api.github.com/users/OmniSharp/followers","following_url":"https://api.github.com/users/OmniSharp/following{/other_user}","gists_url":"https://api.github.com/users/OmniSharp/gists{/gist_id}","starred_url":"https://api.github.com/users/OmniSharp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OmniSharp/subscriptions","organizations_url":"https://api.github.com/users/OmniSharp/orgs","repos_url":"https://api.github.com/users/OmniSharp/repos","events_url":"https://api.github.com/users/OmniSharp/events{/privacy}","received_events_url":"https://api.github.com/users/OmniSharp/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OmniSharp/omnisharp-vscode","description":"Official C# support for Visual Studio Code (powered by OmniSharp)","fork":false,"url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode","forks_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/forks","keys_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/teams","hooks_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/hooks","issue_events_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/issues/events{/number}","events_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/events","assignees_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/assignees{/user}","branches_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/branches{/branch}","tags_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/tags","blobs_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/git/refs{/sha}","trees_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/statuses/{sha}","languages_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/languages","stargazers_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/stargazers","contributors_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/contributors","subscribers_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/subscribers","subscription_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/subscription","commits_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/commits{/sha}","git_commits_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/git/commits{/sha}","comments_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/comments{/number}","issue_comment_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/issues/comments{/number}","contents_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/contents/{+path}","compare_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/merges","archive_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/downloads","issues_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/issues{/number}","pulls_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/pulls{/number}","milestones_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/milestones{/number}","notifications_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/labels{/name}","releases_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/releases{/id}","deployments_url":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/deployments","created_at":"2015-12-03T15:45:21Z","updated_at":"2016-11-10T05:02:40Z","pushed_at":"2016-11-09T21:45:22Z","git_url":"git://github.com/OmniSharp/omnisharp-vscode.git","ssh_url":"git@github.com:OmniSharp/omnisharp-vscode.git","clone_url":"https://github.com/OmniSharp/omnisharp-vscode.git","svn_url":"https://github.com/OmniSharp/omnisharp-vscode","homepage":"","size":936,"stargazers_count":296,"watchers_count":296,"language":"TypeScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":110,"mirror_url":null,"open_issues_count":238,"forks":110,"open_issues":238,"watchers":296,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/pulls/902"},"html":{"href":"https://github.com/OmniSharp/omnisharp-vscode/pull/902"},"issue":{"href":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/issues/902"},"comments":{"href":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/issues/902/comments"},"review_comments":{"href":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/pulls/902/comments"},"review_comment":{"href":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/pulls/902/commits"},"statuses":{"href":"https://api.github.com/repos/OmniSharp/omnisharp-vscode/statuses/57ffb02b4a7ce80a000d69d9eef100ab5aca2f9b"}}}}
{"actor":{"display_login":"DustinCampbell"}}