C++ implementation of a lock-free doubly-linked list