Атомное чтение / запись для указателя функции в C? - PullRequest
0 голосов
/ 21 июня 2019

Я работаю над кодом на C, который работает на Windows, а также на других платформах. Мне известны такие функции, как InterlockedExchangePointer для атомарного чтения / записи указателя данных, и я уверен, что есть нечто подобное для других платформ, но как я могу сделать это с помощью указателя функции в переносимом виде? Это возможно или мне нужен замок или барьер памяти или еще что-то?

1 Ответ

0 голосов
/ 21 июня 2019

C11 atomics - это стандартная вещь, но не все компиляторы поддерживают ее.

GCC 4.1+, а также компиляторы, такие как clang и ICC, которые стремятся к совместимости с ним, поддерживают __sync встроенных .

У меня есть некоторый код , который предоставляет общий API, который может вас заинтересовать.

...