establishing a “happens before relationship” between parts of the program and the threads that are running them.
- SeqCst: all accesses on one thread that happen before and after a SeqCst access stay before and after it.
- Acquire: an acquire access ensures that every access after it stays after it.
- Release: a release access ensures that every access before it stays before it.
Solve the problem you have right now. Then solve the next one. And the next one. At one point, you’ll realize there is a pattern emerging from those solutions and then you’ll find your “solve everything”.
Understand and stay way of cargo cult “Cargo cult” is the idea that, if someone else did, so can we. Most of the time, cargo cult is simply an “easy way out” of a problem.
Keep a record of “stupid errors that took me more than 1 hour to solve”
“I’m not saying it’s wrong, I’m just confused”.
lifetimes is that they are all about references