https://issues.dlang.org/show_bug.cgi?id=8295
--- Comment #11 from Marco Leise <marco.le...@gmx.de> --- Uh, I think I just contradicted my two years younger self from the linked bug report. I guess whether or not `stdout` (or any reference counter) should use atomic operations must not depend on whether the struct itself is `shared` for the afore mentioned reasons. `stout` being a global variable should of course be `shared`, but threads are free to create a local, unshared copy of that RC pointer. These copies would still uses atomic operations internally. That way I can reconcile the both of me. TL;DR Let's not use shared to signify whether an RC pointer should use atomic ops internally. Value types can always be copied stripping their top-level qualifiers! --