Repository navigation
Lets the LSP frontend delegate job interruption to the interrupt API - #369
Merged
ArquintL merged 1 commit intoOct 30, 2026
Merged
Conversation
`ViperServerService.stopVerification` now interrupts via `interruptVerification` and only keeps its frontend-specific behavior (eagerly freeing the job's slot, stopping a dependent AST construction, and logging). Its interrupt can thus no longer be starved: its callbacks ran on the verification thread pool, i.e. behind the very tasks they are meant to interrupt if the pool is saturated. Observable changes: the returned future yields true only if a task has actually been interrupted, and stopping a verification that still waits for its AST construction resolves to false within the ask timeout instead of stalling until the AST is constructed. `JobPool.discardJob` is now private to the vsi layer. Frontends use `discardAstJob` and the new `discardVerificationJobEagerly` instead. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
rayman2000
force-pushed
the
interrupt-jobs-4-lsp-delegation
branch
from
October 30, 2026 11:14
cd6ca6d to
6fff484
Compare
rayman2000
approved these changes
Oct 30, 2026
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.
Stacked on #368.
ViperServerService.stopVerificationnow performs the interrupt viainterruptVerification(#357) and keeps only its LSP-specific behavior: freeing the job's slot immediately, stopping a dependent AST construction, and logging. This fixes that the LSP frontend's interrupt could be starved: its callbacks ran on the verification thread pool, i.e. behind the very tasks they are meant to interrupt when that pool is saturated.Changes in behavior:
trueonly if a task has actually been interrupted. Previously, it also yieldedtrueif the job had already finished.falsewithin the ask timeout instead of waiting until the AST has been constructed.JobPool.discardJobis now private to thevsipackage. Frontends usediscardAstJoband the newdiscardVerificationJobEagerlyinstead.🤖 Generated with Claude Code