Thread overview
[Issue 20837] [core.atomic] Provide MemoryOrder.con (consume) for atomicLoad
May 17, 2020
Hiroki Noda
May 20, 2020
Witold Baryluk
May 20, 2020
Witold Baryluk
Dec 07, 2020
Witold Baryluk
May 17, 2020
https://issues.dlang.org/show_bug.cgi?id=20837

Hiroki Noda <kubo39@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kubo39@gmail.com

--- Comment #1 from Hiroki Noda <kubo39@gmail.com> ---
FYI: memory_order_consume is temporarily discouraged. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0371r1.html

--
May 20, 2020
https://issues.dlang.org/show_bug.cgi?id=20837

--- Comment #2 from Witold Baryluk <witold.baryluk+d@gmail.com> ---
Hiroki,

yes, you are right, I did Hans Boehm other papers, but I did miss this one. To make memory_order_consume worthwile and actually do something better than memory_order_acquire it requires extra support from compiler (including possibly annotations for killing dependencies) and defining precisely how it work. This is missing right now (the current specification is not workable, and not possible to really implement in compilers).

So, yes, to be postponed. And I guess, it is good phobos core.atomics and LLVM didn't blindly pick it up.

Will close it for the time being.

--
May 20, 2020
https://issues.dlang.org/show_bug.cgi?id=20837

Witold Baryluk <witold.baryluk+d@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P5
           Severity|enhancement                 |minor

--
December 07, 2020
https://issues.dlang.org/show_bug.cgi?id=20837

Witold Baryluk <witold.baryluk+d@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |WONTFIX

--- Comment #3 from Witold Baryluk <witold.baryluk+d@gmail.com> ---
Lets ignore it. Consume is too complex to be really implementable at this point, it requires very sophisticated machinery in compiler to even be possible to done correctly.

--