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.dllAssinatura
LONG InterlockedCompareExchange(
LONG volatile * Destination,
LONG Exchange,
LONG Comparand
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| Destination | LONG volatile * | Ponteiro para a variável a comparar/trocar. |
| Exchange | LONG | Novo valor a atribuir, se a comparação for bem-sucedida. |
| Comparand | LONG | Valor 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.