Reputation: 46760
GCC's recent support for atomic operations (as described here) is great, and is 90% of what we need. Unfortunately, some of our products still need to run on Windows and so we need atomic integer operations for Windows as well.
In the past, we had custom assembly language implementations for all our platforms, but I'd like move all the *nix platforms over to the GCC supported operations and the thought crossed my mind that perhaps there is also a more standard way to do this on Windows now as well...
Is there an officially sanctioned way of doing this on Windows (other than implementing them yourself in assembly language)?
Upvotes: 5
Views: 3426
Reputation: 7434
GLib provides some atomic operations, and they are known to run on windows. You can inspect the sources for ideas or directly pick the code you need.
Upvotes: 0
Reputation: 490018
It depends on which of those you need -- I don't think there's a (pre-built) implementation of every one of them on Windows (except possibly within gcc) but some of them have been around for quite a while. Windows has InterlockedIncrement, InterlockedDecrement, InterlockedAdd, InterlockedOr, InterlockedXor, and so on.
Upvotes: 0