Альтернативы новым целочисленным операциям GCC
-
06-07-2019 - |
Вопрос
Недавняя поддержка GCC для атомарных операций (как описано здесь ) - это здорово и составляет 90% от того, что нам нужно , К сожалению, некоторые из наших продуктов по-прежнему должны работать в Windows, поэтому нам также нужны атомарные целочисленные операции для Windows. Р>
В прошлом у нас были пользовательские реализации на ассемблере для всех наших платформ, но я бы хотел перенести все платформы * nix на операции, поддерживаемые GCC, и мне в голову пришла мысль, что, возможно, есть и более стандартный способ сделать это и сейчас в Windows ...
Есть ли официально санкционированный способ сделать это в Windows (кроме как реализовать их самостоятельно на языке ассемблера)?
Решение
Вам нужны функции с блокировкой . р>
Другие советы
Это зависит от того, кто из них вам нужен - я не думаю, что есть (заранее собранная) реализация каждого из них в Windows (за исключением, возможно, в gcc), но некоторые из них существуют уже довольно давно , В Windows есть InterlockedIncrement, InterlockedDecrement, InterlockedAdd, InterlockedOr, InterlockedXor и т. Д.
GLib предоставляет некоторые элементарные операции , и они, как известно, бегут на окнах. Вы можете проверить источники на предмет идей или напрямую выбрать код тебе нужно.