Skip to content

threadteam 0.2.0: own worker threads, libgomp's waits (#15, #16) - #17

Merged
shinaoka merged 1 commit into
mainfrom
release/0.2.0
Oct 29, 2026
Merged

shinaoka merged 1 commit into
mainfrom
release/0.2.0

Conversation

@shinaoka

Copy link
Copy Markdown
Member

Release preparation for threadteam 0.2.0: the version bump and an "Upgrading from 0.1" section in the README. This PR does not publish; publishing waits for the maintainer's approval.

Why 0.2.0 (not 0.1.4)

cargo public-api -p threadteam diff v0.1.3..origin/main, default features and --all-features.

Signatures: additive.

  • Added: PoolBuilder::spin_polls, Pool::spin_polls and, with the rayon feature, Exec::external_rayon.
  • Nothing threadteam declares was removed or changed.
  • With default features, the blanket impls that came with Rayon's dependencies (either::IntoEither, crossbeam_epoch::Pointable on every public type) disappear, because parallel no longer pulls Rayon.
  • Pool and IntoTeamError lose the auto trait Freeze, which is unstable and not nameable on stable.

Behaviour: breaking. That makes it a minor bump under 0.x semver:

change effect on callers
Pool drop with default thread settings the shared workers are returned to the process-wide reserve, not joined. Dedicated pools (thread_name, on_start, stack size, QoS) are still joined
external on a team token lends the members to the pool's own queue; Rayon calls in the callback now go to Rayon's global pool. The old behaviour is external_rayon (feature rayon)
feature parallel no Rayon dependency
idle_runs_rayon no effect, kept so that callers compile
waits libgomp's (spin_polls, 16 yields, sleep)

Package check

  • cargo package packages and verifies threadteam v0.2.0: 113 files, about 1.2 MB, the same layout as 0.1.3, with no include/exclude list.
  • The metadata is unchanged from 0.1.3: name, description, license MIT OR Apache-2.0, repository, documentation, readme, keywords and categories.
  • rust-version is not set, as in 0.1.x.
  • Local checks pass: fmt, clippy (all features and no default features), doctests (74) and cargo doc -D warnings. The full gate and the acceptance runs (broccoli (a)(b)(c), evo (b)(d)) ran on Own worker threads: a process-wide reserve of std::thread workers instead of a private Rayon pool (#15) #16, whose head is this branch's parent 9eeb0b4.

After approval (not in this PR)

  1. Publish 0.2.0 and tag v0.2.0.
  2. Raise faer's threadteam requirement to 0.2, then the tenferro v0.8.0 chain.

🤖 Generated with Claude Code

Breaking under 0.x semver: Pool drop returns shared workers to a
process-wide reserve instead of joining them, `external` on a team token
no longer runs inside Rayon (`external_rayon` behind the new `rayon`
feature), `parallel` no longer pulls Rayon, and `idle_runs_rayon` is a
no-op. README gains an "Upgrading from 0.1" section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@shinaoka shinaoka self-assigned this Oct 29, 2026
@shinaoka
shinaoka merged commit 302c37d into main Oct 29, 2026
7 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.

1 participant