Yes!
I wrote a lock-free queue. It has Features™:
- Fully wait-free (no CAS loops)
- Super fast (over a hundred million enqueue/dequeue operations per second)
- Uses C++11 move semantics
- Grows as needed (but only if you want it to)
- Does lock-free memory management for the elements (using pre-allocated contiguous blocks)
- Stand-alone (two headers plus a license and readme)
- Compiles under MSVC2010+, Intel ICC 13, and GCC 4.7.2 (and should work under any C++11 fully-compliant compiler)
It's available on GitHub under the simplified BSD license (feel free to fork it!).
Caveats:
- Only for single-producer single-consumer architecture (i.e. two threads)
- Thoroughly tested on x86(-64), and should work on ARM, PowerPC, and other CPUs where aligned native-sized integers and pointer loads and stores are naturally atomic, but has not been field tested on non-x86 CPUs (if someone has one to test it on let me know)
- No idea if any patents are infringed upon (use at your own risk, etc.). Note that I did design and implement it myself from scratch.