News for hackers. Stuff that matters.
Re:Mutexes are faster than Spinlocks by legulere on Sunday January 05, 2020 @01:23AM (#21960014)
Volatile doesn’t even guarantee that data is written atomically in one step and not e.g. byte-wise. Also it allows both the compiler as well as the CPU to reorder it with any read or write. I can’t think of anything that would it could be used for in a multithreaded environment.
Re:Mutexes are faster than Spinlocks by ncmncm on Sunday January 05, 2020 @03:01AM (#21960228)
Right.

There is really only a single place volatile actually works, and that is for memory-mapped hardware registers. Anybody who says it is useful for anything else is badly mistaken.

Except in MSVC, where it kinda/sorta means atomic.

Re:Mutexes are faster than Spinlocks by rcxdude on Sunday January 05, 2020 @07:27AM (#21960990)
It allows the compiler to reorder it with any non-volatile read or write. Of course it still doesn't indicate anything to the CPU. In single-core embedded systems where the CPU doesn't reorder anything and you know the compiler is going to emit a single instruction for a read or write it can be sufficient (for example, this is how FreeRTOS implements all of its threading primitives)