I, too, am suspicious of lock-free synchronizations. They seem interesting, but are still topics for research. Also, the complexity and subtleties of the code are higher than I might recommend, especially for new concurrent coders. Consider the derivation of a lockless solution to "The Critical Section Problem" from Chapter 3 of M. Ben-Ari's Principles of Concurrent and Distributed Programming, 2/e. Four attempts at solution are made and proved to be lacking before the presentation of Dekker's Algorithm.
Lock-free data structures are going to need to demonstrate a large performance gain over more straightforward synchronization methods before they are going to be accepted by the general population.