For example, it has been shown that the widely available atomic "conditional" primitives, CAS and LL/SC, cannot provide starvation-free implementations of many common data structures without memory costs growing linearly in the number of threads.