| ▲ | bjackman 8 hours ago | |
In my experience, in practice, it usually isn't that hard to figure out what people meant by a READ/WRITE_ONCE(). Most common cases I see are: 1. I'm sharing data between concurrent contexts but they are all on the same CPU (classic is sharing a percpu variable between IRQ and task). 2. I'm reading some isolated piece of data that I know can change any time, but it doesn't form part of a data structure or anything, it can't be "in an inconsistent state" as long as I can avoid load-tearing (classic case: a performance knob that gets mutated via sysfs). I just wanna READ it ONCE into a local variable, so I can do two things with it and know they both operate with the same value. I actually don't think C++ or Rust have existing semantics that satisfy this kinda thing? So will be interesting to see what they come up with. | ||