Repository navigation
threadteam 0.2.0: back to Rayon, reuse the private Rayon pool per width; own threads stay on develop - #21
Merged
Conversation
…th; libgomp's waits main returns to the Rayon version of #19 (9dfcbdb): src/, tests/, docs/ and scripts/ as on that commit. A pool with default thread settings keeps its Rayon pool in a process-wide per-width cache on drop and the next pool of that width reuses the threads; waits follow libgomp (spin_polls, 16 yields, sleep). The own-threads version (#16) stays on `develop` (maintainer decision 2026-10-30); docs/design/own-threads.md leaves main. README "Upgrading from 0.1" rewritten for the Rayon version. Closes #20. Supersedes #19. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Returns
mainto the Rayon version and prepares threadteam 0.2.0.Maintainer decision (2026-10-30): 「0.3.0でいいよ.あと,独自スレッド版はdevelop branchに保存しよう.しばらくはRayon版を出版し続けて,Rayonで何ができないか熟考してから判断する.」
The own-threads version (#16, plus the 0.2.0 version bump of #17) is kept on
develop(=302c37d). If it ships, it ships as 0.3.0.Closes #20. Supersedes #19, which is closed after this merges.
What changes
src/,tests/,docs/,scripts/,benches/are as on [experiment, do not merge] Reuse the private Rayon pool between pools of one width (faer#107 comparison) #19's9dfcbdb:bench-ab.shwith theHEAD2side.Ordinary commit on
main, no force-push.git diff 9dfcbdb HEADtouches onlyCargo.toml,Cargo.lock,README.mdanddocs/design/placement.md.Removed from
main(kept ondevelop):docs/design/own-threads.md;src/worker.rs;tests/own_threads.rs;rayonopt-in feature andExec::external_rayon. These were never published.Version 0.2.0. There are no breaking signatures.
cargo public-api diff v0.1.3..HEADshows additions only:PoolBuilder::spin_polls;Pool::spin_polls.The bump is minor because of a contract change: dropping a pool with the default thread settings no longer joins its threads, it caches them.
README.
spin_pollsis added;idle_runs_rayon,externaland theparallel→ Rayon dependency are unchanged.docs/design/placement.md.develop.There is no CHANGELOG in this repository.
Verification (primerose, on
7ee9287)The pre-push checklist of
AGENTS.md, plus more:-D warnings);cargo testwith default features, all features (twice) and no default features;RUSTFLAGS="--cfg loom", 7 models;cargo deny check bans;scripts/check-no-public-rayon.sh;cargo docwith and without all features;cargo check --target aarch64-apple-darwin;taskset -c 0-2, three times:idle_clock,oversubscribed,team,rayon_reuse,team_owner,alloc_freeanddrop_join;cargo package: 111 files, 238 KB, with the same metadata as 0.1.3.The CI of #19 on the same sources is green (macOS and Ubuntu tests, loom, clippy, doc, placement rules, rustfmt).
After merge (maintainer-approved)
cargo publish0.2.0 from the merge commit;v0.2.0;The monitor merges.
🤖 Generated with Claude Code