Sourced from rayon's changelog.
Release rayon 1.6.1 (2022-12-09)
- Simplified
par_bridge
to only pull one item at a time from the iterator, without batching. Threads that are waiting for iterator items will now block appropriately rather than spinning CPU. (Thanks@njaard
!)- Added protection against recursion in
par_bridge
, so iterators that also invoke rayon will not cause mutex recursion deadlocks.Release rayon-core 1.10.1 (2022-11-18)
- Fixed a race condition with threads going to sleep while a broadcast starts.
Release rayon 1.6.0 / rayon-core 1.10.0 (2022-11-18)
- The minimum supported
rustc
is now 1.56.- The new
IndexedParallelIterator::fold_chunks
andfold_chunks_with
methods work likeParallelIterator::fold
andfold_with
with fixed-size chunks of items. This may be useful for predictable batching performance, without the allocation overhead ofIndexedParallelIterator::chunks
.- New "broadcast" methods run a given function on all threads in the pool. These run at a sort of reduced priority after each thread has exhausted their local work queue, but before they attempt work-stealing from other threads.
- The global
broadcast
function andThreadPool::broadcast
method will block until completion, returning aVec
of all return values.- The global
spawn_broadcast
function and methods onThreadPool
,Scope
, andScopeFifo
will run detached, without blocking the current thread.- Panicking methods now use
#[track_caller]
to report the caller's location.- Fixed a truncated length in
vec::Drain
when given an empty range.Contributors
Thanks to all of the contributors for this release!
401678e
Merge #70933e9843
Release rayon 1.2.1 / rayon-core 1.6.1dd874ac
Bump crate versions and dependencies0c6338d
Reduce Option complexity in demo cpu_timebe99e50
cargo fmt9b4d979
Avoid mem::uninitialized in the demo cpu_time5a46643
Avoid mem::uninitialized in par_sort_unstable73b1061
Merge #70554c0b0d
Make sure that compat-Cargo.lock is fresh4fd13b0
Regenerate compat-Cargo.lock