__sync_bool_compare_and_swap - возвращает значение, если oldval и newval совпадают - PullRequest
0 голосов
/ 03 февраля 2020

в документации не говорится, что происходит, когда ожидаемые oldval и newval совпадают. Ниже приведено g cc do c:

Версия «bool» возвращает true, если сравнение прошло успешно, и записано newval .

Таким образом, если newval и oldval - это одно и то же, фактически нет записи. Поэтому следующий код всегда вернет true, если *ptr == 0?

__sync_bool_compare_and_swap(&ptr, 0, 0)

Спасибо

...