
Am Monday 30 November 2009 17:33:03 schrieb Zachary Turner:
On Sun, Nov 29, 2009 at 4:49 PM, Helge Bahmann <hcb@chaoticmind.net> wrote:
It contains some entirely untested support for building implementations from CAS operations on other systems
okay this was badly worded -- the infrastructure for building atomic operations from just a single platform-specific CAS operation is finished and well tested, it is just that I do not have every conceivable compiler/os combination available to test if some particular platform-CAS works (or even compiles). In particular, I have no windows system available to me for testing, so things will take some time as I constantly have to ask others helping me out for implementation and/or testing. If however, by sheer luck, I have managed to hit the right ifdef/include combination required for _InterlockedCompareExchange on the first attempt and without any compile-testing, then it will compile and run correctly already.
(e.g. _InterlockedCompareExchange on win), so I would greatly appreciate any feedback if it works/doesn't on any particular platform.
Just to clarify, delegating to Interlocked* API on windows is going to be an officially supported feature of the API, but currently just isn't tested well enough right? I'm just unclear if it's going to be officially supported, or if this is more like experimental and maybe not officially supported in the first release.
I would not dare calling something a "release" that didn't support the _Interlocked* family of operations ;) But I'm optimistic that this will probably be sorted out by the end of the week -- and there will be a properly optimized implementation using all of the _Interlocked* functions instead of always falling back to _InterlockedCompareExchange. Best regards, Helge