| ▲ | goalieca 4 hours ago | |||||||
Which platforms might that be? Even MIPS has atomics (at least pointer sized last i checked). | ||||||||
| ▲ | cogman10 3 hours ago | parent [-] | |||||||
AFIAK, and I'm not MIPS expert, but I believe it doesn't have the ability to add a value directly to a memory address. You have to do something like
The LOAD and STORE are atomic, but the `ADD` happens out of band.That's a problem if any sort of interrupt happens (if you are multi-threading then a possibility). If it happens at the load, then a separate thread can update "addr" which mean the later STORE will stomp on what's there. x86 and ARM can do
as well as other instructions like "compare and swap" | ||||||||
| ||||||||