Based on the linked list example in Chapter 9 of "The Art Of Multiprocessor Programming" book.
Java's AtomicMarkableReference was "poorly" ported so I could be able to implement the same data structure in Rust (it requires extra memory allocations and deallocations).