Repository navigation
Conversation
Contributor
|
E2E Tests 🚀 Why these tags?
More on automatic tags from changed files. Test count: Linux: 201 tests across 2 shards. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #16089
Summary
When an extension runs code in a console that is already busy, the code waits in the console's queue. Until now, cancelling that execution did nothing while it was queued: the extension kept waiting for a result that might never come (for example, behind a running Shiny app), and the queued code still ran later once the console was free.
This PR lets an extension cancel a queued execution through the cancellation token it passes to
positron.runtime.executeCode:This is motivated by Assistant, whose Stop button now actually stops queued code. But the fix is in the core execution API, so it helps any extension that runs code in the console and passes a cancellation token.
Release Notes
New Features
Bug Fixes
Validation Steps
@:console @:assistant
Sys.sleep(60)(or start a Shiny app).Sys.sleep(60)keeps running.Sys.sleep(60)finishes, verify Assistant's code does not run.Unit tests cover the queue removal in the console service and the cancellation flow in the extension host.