Skip to content

Releases: DNedic/lockfree

3.0.0

23 Feb 23:10

Choose a tag to compare

  • Breaking: PopOptional() has been renamed to Pop() as an overload for the Queues
  • Breaking: mpmc::Queue now enforces a power-of-2 size. This is necessary to prevent deadlocks on index overflows.
  • Fixed an incorrect our_turn check in mpmc::Queue that caused
    incorrect behavior when monotonic push/pop counters wrapped around
  • Fixed the push/pop count comparison condition in mpmc::Queue
  • Replaced the two per-slot atomics (push_count/pop_count) in
    mpmc::Queue with a single access_count, reducing memory
    usage and contention per slot
  • Added cacheline alignment for mpmc::Queue slots when
    LOCKFREE_CACHE_COHERENT is enabled, eliminating false sharing between adjacent slots
  • Moved _write_wrapped and _read_wrapped flags in spsc::BipartiteBuf to share cachelines with their respective producer/consumer indexes, reducing cache contention
  • Fixed spsc::RingBuf std::array overloads to use .data()
    instead of .begin(), returning a proper pointer rather than an iterator
  • Ensured PriorityQueues must have at least 2 priorities

2.0.10

19 Jan 00:35

Choose a tag to compare

  • Added a missing include in the Ring Buffer causing errors for `memcpy use

2.0.9

22 Jul 14:55

Choose a tag to compare

2.0.8

26 Mar 18:39

Choose a tag to compare

  • Added a performance optimization in the Bipartite Buffer, where the atomic invalidate index load can be avoided after writing wraps

2.0.7

25 Feb 00:24

Choose a tag to compare

  • Fixed an omission where the invalidate index of the Bipartite Buffer was sharing a cacheline with wrapping flags, leading to unnecessary performance loss

2.0.6

20 Dec 14:52

Choose a tag to compare

  • Added a performance optimization in the Bipartite Buffer, where the atomic read index load can be avoided after reading wraps

2.0.5

07 Dec 13:26

Choose a tag to compare

  • A linear space calculation bug in the Bipartite Buffer that could cause data corruption in builds without asserts enabled was fixed

2.0.4

09 Aug 23:36

Choose a tag to compare

  • Added the ability to configure the library through CMake

2.0.3

17 Jul 14:56

Choose a tag to compare

  • Fixed MSVC C++ language standard detection

2.0.2

05 Jun 22:27

Choose a tag to compare