Skip to content

Latest commit

 

History

History
19 lines (15 loc) · 916 Bytes

README.md

File metadata and controls

19 lines (15 loc) · 916 Bytes

lockfree-cpp

Some lock-free datastructures and tools in C++ that do not require C++11.

Included are

  • A lock-free exchanger based on the JDK's java.util.concurrent.Exchanger
  • An atomic tagged pointer type based on the JDK's java.util.concurrent.atomic.AtomicReference
  • An intrusive lock-free stack (LIFO) that uses operation elimination as described in A scalable lock-free stack algorithm
  • An intrusive lock-free MPSC queue (FIFO) cribbed directly from the work of Dmitry Vyukov

The datastructures themselves are header-only; you'll need pthreads and the STL to compile the unit tests.

Thanks to Phil Nash for his Catch unit test framework.