7 ms·
> Even rust's memory model has places where it can't do what C++ can. (you can't use atomic to write data from two different threads at the same time) Perhaps
by njs12345 4y ago
> Even rust's memory model has places where it can't do what C++ can. (you can't use atomic to write data from two different threads at the same time)
Perhaps not in safe Rust, but can you provide an example of something Rust can't do that C++ can? It has the same memory model as C++20: https://doc.rust-lang.org/nomicon/atomics.html https://doc.rust-lang.org/nomicon/atomics.html
- seoaeu 4y agoYou totally can in safe rust: https://doc.rust-lang.org/std/sync/atomic/struct.AtomicU64.html#method.store https://doc.rust-lang.org/std/sync/atomic/struct.AtomicU64.h...
- njs12345 4y agoThe atomics themselves sure, but I guess often they'll be used as a barrier to protect an UnsafeCell or something, like in the implementation of Lazy<T>: https://docs.rs/lazy-init/0.5.0/src/lazy_init/lib.rs.html#85 https://docs.rs/lazy-init/0.5.0/src/lazy_init/lib.rs.html#85