Alternative alle nuove operazioni di numeri interi atomici di GCC
-
06-07-2019 - |
Domanda
Il recente supporto di GCC per operazioni atomiche (come descritto qui ) è fantastico ed è il 90% di ciò di cui abbiamo bisogno . Sfortunatamente, alcuni dei nostri prodotti devono ancora funzionare su Windows e quindi abbiamo bisogno di operazioni con numeri interi atomici anche per Windows.
In passato, avevamo implementazioni personalizzate del linguaggio assembly per tutte le nostre piattaforme, ma mi piacerebbe spostare tutte le piattaforme * nix sulle operazioni supportate da GCC e il pensiero mi ha fatto pensare che forse esiste anche un modo più standard per farlo ora anche su Windows ...
Esiste un modo ufficialmente sanzionato per farlo su Windows (oltre all'implementazione da soli in linguaggio assembly)
Soluzione
Desideri le funzioni Interlocked .
Altri suggerimenti
Dipende da quale di quelli di cui hai bisogno - non credo che ci sia un'implementazione (pre-costruita) di ognuno di essi su Windows (tranne forse all'interno di gcc), ma alcuni di loro sono in circolazione da un po 'di tempo . Windows ha InterlockedIncrement, InterlockedDecrement, InterlockedAdd, InterlockedOr, InterlockedXor e così via.
GLib fornisce a alcune operazioni atomiche e sono noti per funzionare su Windows. Puoi ispezionare le fonti alla ricerca di idee o selezionare direttamente il codice hai bisogno.