Здравствуйте, Jolly Roger, Вы писали:
R>>Той проблемы, которую пытается решить автор, просто нет в C#, т.к. GC её решает.
R>>з.ы. и back-off elimination стек *не* wait-free.
JR>Проблему обращения к освобождённой памяти — да, но проблема создания нового элемента на том-же адресе по-моему всё равно остаётся, разве нет?
Нет. Объект-то может создаться по тому же адресу, но это не будет проблемой, т.к. он может там создаться только тогда, когда ни у одного потока не осталось указателей на старый объект (соотв. он не может быть аргументом для CAS), поэтому ABA быть не может.
JR>Я просто подумал, что автору всё равно переделывать свой алгоритм, и будет полезно ознакомиться с примерами рассуждений на эту тему
Это не то, с чем следует ознакамливаться, особенно без комментариев о неработоспособности.