Как я могу атомарно поменять местами два указателя в Windows?

Хорошо, я задаю то же, что и этот удаленный вопрос , но я задаю его более прямо.

Я ' У нас есть две переменные-указатели в двух экземплярах одного и того же класса. Я хотел бы поменять местами содержимое этих переменных (не то, на что они УКАЗЫВАЮТ, а только сами переменные) атомарно.

Я хотел бы избежать блокировок, если это вообще возможно.

Как мне это сделать?

РЕДАКТИРОВАТЬ: На три миллиарда ответов InterlockedExchangePointer, сначала прочтите документы MSDN . InterlockedExchangePointer обменивает значение целевого указателя на значение в регистре стека . Он (сам по себе) не обменивается двумя указателями в ячейках памяти.

6
задан Community 23 May 2017 в 11:43
поделиться