Version 0.8.7
- Add
AtomicCell<{i*,u*}>::{fetch_max,fetch_min}. (#785) - Add
AtomicCell<{i*,u*,bool}>::fetch_nand. (#785) - Fix unsoundness of
AtomicCell<{i,u}64> arithmetics on 32-bit targets that support Atomic{I,U}64 (#781)
Version 0.8.6
- Re-add
AtomicCell<{i,u}64>::{fetch_add,fetch_sub,fetch_and,fetch_or,fetch_xor} that were accidentally removed in 0.8.0 on targets that do not support Atomic{I,U}64. (#767) - Re-add
AtomicCell<{i,u}128>::{fetch_add,fetch_sub,fetch_and,fetch_or,fetch_xor} that were accidentally removed in 0.8.0. (#767)
Version 0.8.5
- Add
AtomicCell::fetch_update. (#704) - Support targets that do not have atomic CAS on stable Rust. (#698)
Version 0.8.4
- Bump
loom dependency to version 0.5. (#686)
Version 0.8.3
- Make
loom dependency optional. (#666)
Version 0.8.2
- Deprecate
AtomicCell::compare_and_swap. Use AtomicCell::compare_exchange instead. (#619) - Add
Parker::park_deadline. (#563) - Improve implementation of
CachePadded. (#636) - Add unstable support for
loom. (#487)
Version 0.8.1
- Make
AtomicCell::is_lock_free always const fn. (#600) - Fix a bug in
seq_lock_wide. (#596) - Remove
const_fn dependency. (#600) crossbeam-utils no longer fails to compile if unable to determine rustc version. Instead, it now displays a warning. (#604)
Version 0.8.0
- Bump the minimum supported Rust version to 1.36.
- Remove deprecated
AtomicCell::get_mut() and Backoff::is_complete() methods. - Remove
alloc feature. - Make
CachePadded::new() const function. - Make
AtomicCell::is_lock_free() const function at 1.46+. - Implement
From<T> for AtomicCell<T>.
Version 0.7.2
- Fix bug in release (yanking 0.7.1)
Version 0.7.1
- Bump
autocfg dependency to version 1.0. (#460) - Make
AtomicCell lockfree for u8, u16, u32, u64 sized values at 1.34+. (#454)
Version 0.7.0
- Bump the minimum required version to 1.28.
- Fix breakage with nightly feature due to rust-lang/rust#65214.
- Apply
#[repr(transparent)] to AtomicCell. - Make
AtomicCell::new() const function at 1.31+.
Version 0.6.6
- Add
UnwindSafe and RefUnwindSafe impls for AtomicCell. - Add
AtomicCell::as_ptr(). - Add
AtomicCell::take(). - Fix a bug in
AtomicCell::compare_exchange() and AtomicCell::compare_and_swap(). - Various documentation improvements.
Version 0.6.5
- Rename
Backoff::is_complete() to Backoff::is_completed().
Version 0.6.4
- Add
WaitGroup, ShardedLock, and Backoff. - Add
fetch_* methods for AtomicCell<i128> and AtomicCell<u128>. - Expand documentation.
Version 0.6.3
- Add
AtomicCell. - Improve documentation.
Version 0.6.2
- Add
Parker. - Improve documentation.
Version 0.6.1
- Fix a soundness bug in
Scope::spawn(). - Remove the
T: 'scope bound on ScopedJoinHandle.
Version 0.6.0
- Move
AtomicConsume to atomic module. scope() returns a Result of thread joins.- Remove
spawn_unchecked. - Fix a soundness bug due to incorrect lifetimes.
- Improve documentation.
- Support nested scoped spawns.
- Implement
Copy, Hash, PartialEq, and Eq for CachePadded. - Add
CachePadded::into_inner().
Version 0.5.0
- Reorganize sub-modules and rename functions.
Version 0.4.1
- Fix a documentation link.
Version 0.4.0
CachePadded supports types bigger than 64 bytes.- Fix a bug in scoped threads where unitialized memory was being dropped.
- Minimum required Rust version is now 1.25.
Version 0.3.2
- Mark
load_consume with #[inline].
Version 0.3.1
load_consume on ARM and AArch64.
Version 0.3.0
- Add
join for scoped thread API. - Add
load_consume for atomic load-consume memory ordering. - Remove
AtomicOption.
Version 0.2.2
- Support Rust 1.12.1.
- Call
T::clone when cloning a CachePadded<T>.
Version 0.2.1
Version 0.2.0
- Add
nightly feature. - Use
repr(align(64)) on CachePadded with the nightly feature. - Implement
Drop for CachePadded<T>. - Implement
Clone for CachePadded<T>. - Implement
From<T> for CachePadded<T>. - Implement better
Debug for CachePadded<T>. - Write more tests.
- Add this changelog.
- Change cache line length to 64 bytes.
- Remove
ZerosValid.
Version 0.1.0
- Old implementation of
CachePadded from crossbeam version 0.3.0