Use tokens for timeout in dynamic completions #2434
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This rewrites the timeout functionality in terms of cancel tokens, which I think is a) more in line with the general VS Code patterns and b) will allow us to cancel even more aggressively once we support cancel tokens across the JSONRPC boundary.
The code for the two functions is copied from https://github.com/microsoft/vscode/blob/be7046f09199da197a2b566f90f51f7e2653fed7/src/vs/platform/remote/common/remoteAgentConnection.ts#L89, I don't fully understand why that isn't just part of the json-rpc npm package, but whatever :)
The one thing that is not entirely clear to me is whether we should just call
return
if cancelled, or return an empty result? The old code seemed to do both things.