Voltar à lista
Windows Win32Sincronizaçãokernel32.dll

InterlockedCompareExchange

Compara o valor de uma variável com um valor esperado e, se igual, a substitui atomicamente (CAS).

Descrição

Análogo ao builtin `__atomic_compare_exchange`/instrução `cmpxchg` usada no Linux — primitiva fundamental para algoritmos lock-free.

Header: winnt.hDLL: kernel32.dll

Assinatura

LONG InterlockedCompareExchange(
    LONG volatile * Destination,
    LONG Exchange,
    LONG Comparand
);

Parâmetros

ParâmetroTipoDescrição
DestinationLONG volatile *Ponteiro para a variável a comparar/trocar.
ExchangeLONGNovo valor a atribuir, se a comparação for bem-sucedida.
ComparandLONGValor esperado para que a troca ocorra.

Valor de retorno

O valor original de `Destination` (antes de qualquer troca), independentemente de a troca ter ocorrido.

Códigos de erro (GetLastError)

Nenhum código de erro específico documentado para esta chamada.

Relacionadas