Releases: ibraheemdev/seize
Releases · ibraheemdev/seize
0.4.9
0.4.8
- Performance improvements.
- The
fast-barrier
feature flag enables runtime detection of fast memory barriers on Windows and Linux. It is enabled by default in this release. UnprotectedGuard
is now#[non_exhaustive]
, preventing accidental guard usage that can lead to undefined behavior in safe code.
0.4.5
- Fixed a potential data race when using owned guards.
0.4.4
- Minor performance improvements.
0.4.3
- Minor performance improvements.
0.4.2
- Fix memory corruption bug when
retire
is recursively called during reclamation. - Added a
reclaim_all
function to support recursive calls to retire.
0.4.1
- Added the
Deferred
type for deferred retirement batches. - Minor performance improvements.
0.4.0
- Guards are now abstracted with a
Guard
trait. Guard
renamed toLocalGuard
.- Added
OwnedGuard
, a guard that implementsSend
andSync
. - Moved unprotected guard to functionality to the
UnprotectedGuard
type. - Removed
Collector::ptr_eq
and addedGuard::belongs_to
.
0.3.0
Migration
- When migrating to 0.3.0, the type that is passed to a reclaimer is now
*mut Link
instead ofLink
. This means that any instances oflink.cast::<T>()
must be changed tolink.cast::<Linked<T>>()
, orLink::cast::<Linked<T>>(link)
. Any old reclaimers may now silently callptr::cast
instead ofLink::cast
, resulting in undefined behavior.
Changes
- Support for dynamically sized types through the
AsLink
trait. Guard::flush
renamed toGuard::refresh
, and a newGuard::flush
operation added.Linked::into_inner
was removed asvalue
is now a public field.- The
seize::AtomicPtr
alias has been removed.
0.2.0
- Added
seize::AtomicPtr<T>
, a type alias forstd::AtomicPtr<Linked<T>>
. - Epoch tracking is now optional.
- Added
Guard::flush
. - Retirement can now be delayed for the lifetime of a guard (
Guard::retire
). - Added
Linked::eq
,Linked::into_inner
. - Added
Collector::ptr_eq
. Guard::unprotected
is nowconst
.