Atomic Ptr Plus Project Home

Atomic Ptr Plus project page

What this project is

This project is a collection of various lock-free synchronization primitives and fast pathed synchronization functions. See here for a definition and explanation of lock-free.

Released packages


This kind of project takes a lot of resources, particularly in the area of hardware since it has to be ported to different platforms and tested on multi-core machines. Also, I don't want to freeze the api until I get to use it in a serious application. Since lock-free is about scalability among other things this means applications on the large side which also means a lot of resources. For example, try writing a full blown OLAP database from scratch as a proof of lock-free scalability and to firm out the api. Future development will depend on if and when any resources become available.


These pages are somewhat out of date. Future enhancements to fastsmr will probably entail support for reference counting and/or tracing GC instead of the fifo ordering requirement on scheduling object deallocation. Or maybe not.

Current design issues and direction
Synchronization techniques for possible future implementation.

Lock-free patents

Various lock-free patents and patent applications, some by me, some by others, in the area of lock-free programming.

To look at any of the above patent applications go to uspto publication number search and paste in the patent application number.

Stuff previously disclosed on usenet


  1. RCU papers Paul McKenney's Read, Copy, Update papers. Also contains discussions the general technique and some dicussions and reference to other lock-free algorithms. See annotated bibiography document for more references.
  2. Maged Michael's publications page Includes paper on SMR hazard pointers.
  3. Maurice Herlihy's publications page. The definitions for lock-free, wait-free, and obstruction-free are out there somewhere.
  4. Lock-Free Reference Counting. You can't implement this algorithm unless you have cpu's with DCAS but it does sort of cover the issues of lock-free reference counting.
  5. R. K. Treiber. Systems Programming: Coping with Parallelism. RJ 5118, IBM Almaden Research Center, April 1986.

See comp.programming.threads for further discussion on this and lock-free and multithreaded programming in general.

Email: jseigh at

This project hosted by Logo