0
Wie kann ich die folgenden Operationen im atomaren Betrieb ausführen? Ist das möglich?Zeiger mit nullptr atomisch austauschen
LARGE_INTEGER* ptr; // field
void method()
{
LARGE_INTEGER* local = ptr;
ptr = nullptr;
}
Deshalb möchte ich Zeiger von Feld in lokale Zeiger speichern und sofort das Feld zu nullptr
gesetzt.
Mit anderen Worten, ich möchte Zeiger von Feld in lokale Variable in einzelnen atomaren Betrieb verschieben.
'LARGE_INTEGER * local = InterlockedExchangePointer (& ptr, nullptr);' Kann eine Besetzung auf dem ersten Argumente benötigen. –
@IgorTandetnik kann es frei sein? –
Es ist wie gezeigt frei von Sperren. –