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)

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top