The following code produces an access violation in the 2.089.0 release:
import core.atomic;
void main() {
Object a, b = new Object;
cas(&a, null, b);
}
If you cast everything to shared - cas(cast(shared)&a, cast(shared)null, cast(shared)b) - it works as expected. Also if you pass an instantiated object to the `ifThis` argument, it will also work correctly.
Comment #1 by john.michael.hall — 2019-11-06T16:00:48Z
Writing
cas(cast(shared)&a, null, cast(shared)b);
also causes an error.
Comment #2 by Jesse.K.Phillips+D — 2020-02-02T02:32:19Z
Jesse, looking at those logs, looks like it has something to do with the ddox publishing. I'm not sure exactly why every job is trying to publish the documentation, I'll have to take a look.
But I think we worked around this issue already in the io package.
Comment #4 by Jesse.K.Phillips+D — 2020-02-02T03:57:24Z
OK, I see in the "allowed failure" logs. Rereading my notes for the release, the CAS problem I fixed was related to LDC, not this bug. Sorry for the confusion.
Comment #6 by robert.schadek — 2024-12-07T13:39:46Z