On Monday, 4 March 2019 at 00:07:39 UTC, r-const-dev wrote:
I'm trying to implement a thread safe class, guarding data access with synchronized and atomicOp.
To get more help with memory safety checking from the compiler, please instead use `@safe` as
```d import std.typecons : Nullable; @safe class SharedObject { private Nullable!int sharedValue; private int changeCount = 0; synchronized void modifyValue(int newValue) @trusted { (cast(SharedObject)this).unsafeModifyValue(newValue); } private void unsafeModifyValue(int newValue) { sharedValue = newValue; ++changeCount; } } @safe void main() { shared SharedObject data = new shared SharedObject(); data.modifyValue(3); } ```