Swift 3: atomic_compare_exchange_strong

Получение следующего предупреждения в Xcode 8 / Swift 3:

warning: 'OSAtomicCompareAndSwap32Barrier' was deprecated in OS X 10.12:
         Use atomic_compare_exchange_strong() from <stdatomic.h> instead

Попытка использовать функцию atomic_compare_exchange_strong в Swift код приводит ошибку компилятора:

error: use of unresolved identifier 'atomic_compare_exchange_strong'

Импорт Darwin или же CoreFoundation модули не решают проблему.

Какой модуль я должен импортировать, чтобы получить символ для atomic_compare_exchange_strong?

Спасибо!

2 ответа

Я знаю, что это вопрос для Swift 3, но если кто-то наткнется на это, теперь есть пакет Swift Atomics ( представленный в октябре 2020 года ), который можно использовать для этой функции.

Я исправляю ту же проблему после ошибки, добавив:

cgo CFLAGS: -Wno-deprecated-declarations -Wno-c99-extensions

см.: https://github.com/cloudflare/cfssl/pull/721/commits/486691198796cb64b78ff47ef384d28cea1279e2

Другие вопросы по тегам