The benchmark code is coming along nicely.
I’ve added a btree benchmark – lock-free beats everything else by 5x to 10x, ATM, although I think I can imrpove the non-lock-free performance by 2x.
The queue benchmark is also back up.
I was able to perform an experiment I’ve had in my mind for a bit – there is a CAs at the end of enqueue, which updates the enqueue pointer to point at the newly enqueued element. It’s “optional”, in that the dequeue will move the enqueue pointer if it’s out of place. So I took it out and re-ran the benchmark.
Performance dropped by about 20%.