On 4 July 2015 at 10:39, rsw0x via Digitalmars-d < [email protected]> wrote:
> On Saturday, 4 July 2015 at 07:16:09 UTC, Iain Buclaw wrote: > >> On 4 Jul 2015 00:50, "rsw0x via Digitalmars-d" < >> [email protected]> wrote: >> >>> [...] >>>> >>> __sync_* builtins to the new (more compatible with how core.atomics is >> supposed to function) __atomic_* builtins. >> >>> [...] >>>> >>> accepted as valid, but makes no sense. >> >>> [...] >>>> >>> both cases to throw a compilation error (using static assert). However >> I'd like the core druntime team to be on board with this. >> >>> [...] >>> >> forgot until I read this. >> >> [...] >> > > This is how it's currently implemented in C++ as of C++14, correct? > acquire semantics on a write and release semantics on a load make no > sense, so this probably should be changed. > Yes, that is correct. I think closely matching the behaviour of C++14 is the safe option given that this module shares a lot in common with std::atomic. std::atomic::atomic_compare_exchange_strong -> core.atomic.cas std::atomic::memory_order -> core.atomic.MemoryOrder std::atomic::atomic_load -> core.atomic.atomicLoad std::atomic::atomic_store -> core.atomic.atomicStore std::atomic::atomic_thread_fence -> core.atomic.atomicFence Iain.
