Also C isn't well suited to a modern multi-core computer. The "fix" in C11 is to just say we have the C++ 11 Memory Ordering Model and here are some built-ins for the ordered atomic operations that implies.
Having any model at all is probably most of the value and only one part of the model (consume ordering) is unimplementable fantasy so it could have been much worse, but it's hardly a triumph for a "fundamental" language is it?
> The "fix" in C11 is to just say we have the C++ 11 Memory Ordering Model and here are some built-ins for the ordered atomic operations that implies.
Isn't Rust's solution mostly the same, just with C++20?
https://doc.rust-lang.org/nomicon/atomics.html
> Rust pretty blatantly just inherits the memory model for atomics from C++20.
What would you add to make it suitable? Large SIMD operations that the compiler could split across cores?