> Rust `Arc` = C++ `std::shared_ptr`
GP says:
> Rust requires shared pointers (Arc) to also explicitly implement some sort of Mutex-equivalent runtime safety check in order to mutate the data.
Which is it?
> An example of a big C++ codebase using something similar is Chromium ...
Chromium's smart pointers are similar to their standard counterparts -- no mutexes for write access to pointed data.
Also, tangent but interesting: From https://www.chromium.org/developers/smart-pointer-guidelines...:
> Reference-counted objects make it difficult to understand ownership and destruction order, especially when multiple threads are involved. There is almost always another way to design your object hierarchy to avoid refcounting