Skip to content

Run KeY operations on a dedicated executor instead of the common pool - #14

Merged
wadoon merged 1 commit into
fix/client-test-compilationfrom
fix/server-executor
Jun 29, 2026
Merged

Run KeY operations on a dedicated executor instead of the common pool#14
wadoon merged 1 commit into
fix/client-test-compilationfrom
fix/server-executor

Conversation

@unp1

@unp1 unp1 commented Jun 23, 2026

Copy link
Copy Markdown
Member

New-A (deferred until the stability/perf PRs landed): keep blocking KeY operations off the shared ForkJoinPool.commonPool().

auto/macro/script (and openContract/save) block their worker thread for the whole proof run, and everything ran on the common pool — so a few concurrent long proofs could starve unrelated common-pool work across the JVM. This adds a dedicated daemon ExecutorService and routes all supplyAsync operations through it (async(...) helper); it's shut down on exit().

computeAsync-based loading (loadKey/load/loadExample) is left on the common pool for now — a possible follow-up; the long-running proof operations are the main starvation risk and are now off it.

Test: KeyApiExecutorTest confirms executor-dispatched operations still complete.

Base note: this targets fix/client-test-compilation because that branch (not main) currently holds the merged stability/perf stack (#9/#10/#11/#13) — see my message about consolidating that branch into main.

PR has been created with AI tooling

@unp1
unp1 force-pushed the fix/server-executor branch from 2f73806 to f89129f Compare June 23, 2026 05:55
@wadoon
wadoon merged commit 863ada0 into fix/client-test-compilation Jun 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants