Skip to content

Releases: ibraheemdev/seize

0.4.9

30 Nov 19:37
Compare
Choose a tag to compare
  • Fixed a bug where SeqCst protected loads were downgraded to Acquire on Windows, when the fast-barrier feature was enabled.

0.4.8

27 Nov 22:36
Compare
Choose a tag to compare
  • 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

07 Nov 10:51
Compare
Choose a tag to compare
  • Fixed a potential data race when using owned guards.

0.4.4

07 Nov 10:51
Compare
Choose a tag to compare
  • Minor performance improvements.

0.4.3

08 Jul 01:45
Compare
Choose a tag to compare
  • Minor performance improvements.

0.4.2

01 Jul 02:48
Compare
Choose a tag to compare
  • 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

01 Jul 02:47
Compare
Choose a tag to compare
  • Added the Deferred type for deferred retirement batches.
  • Minor performance improvements.

0.4.0

17 Apr 18:29
Compare
Choose a tag to compare
  • Guards are now abstracted with a Guard trait.
  • Guard renamed to LocalGuard.
  • Added OwnedGuard, a guard that implements Send and Sync.
  • Moved unprotected guard to functionality to the UnprotectedGuard type.
  • Removed Collector::ptr_eq and added Guard::belongs_to.

0.3.0

12 Mar 22:14
Compare
Choose a tag to compare

Migration

  • When migrating to 0.3.0, the type that is passed to a reclaimer is now *mut Link instead of Link. This means that any instances of link.cast::<T>() must be changed to link.cast::<Linked<T>>(), or Link::cast::<Linked<T>>(link). Any old reclaimers may now silently call ptr::cast instead of Link::cast, resulting in undefined behavior.

Changes

  • Support for dynamically sized types through the AsLink trait.
  • Guard::flush renamed to Guard::refresh, and a new Guard::flush operation added.
  • Linked::into_inner was removed as value is now a public field.
  • The seize::AtomicPtr alias has been removed.

0.2.0

20 Feb 20:15
Compare
Choose a tag to compare
  • Added seize::AtomicPtr<T>, a type alias for std::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 now const.