Вопрос

Недавняя поддержка GCC для атомарных операций (как описано здесь ) - это здорово и составляет 90% от того, что нам нужно , К сожалению, некоторые из наших продуктов по-прежнему должны работать в Windows, поэтому нам также нужны атомарные целочисленные операции для Windows.

В прошлом у нас были пользовательские реализации на ассемблере для всех наших платформ, но я бы хотел перенести все платформы * nix на операции, поддерживаемые GCC, и мне в голову пришла мысль, что, возможно, есть и более стандартный способ сделать это и сейчас в Windows ...

Есть ли официально санкционированный способ сделать это в Windows (кроме как реализовать их самостоятельно на языке ассемблера)?

Это было полезно?

Решение

Другие советы

Это зависит от того, кто из них вам нужен - я не думаю, что есть (заранее собранная) реализация каждого из них в Windows (за исключением, возможно, в gcc), но некоторые из них существуют уже довольно давно , В Windows есть InterlockedIncrement, InterlockedDecrement, InterlockedAdd, InterlockedOr, InterlockedXor и т. Д.

GLib предоставляет некоторые элементарные операции , и они, как известно, бегут на окнах. Вы можете проверить источники на предмет идей или напрямую выбрать код тебе нужно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top