I just asked a question involving volatile: volatile array c++
However my question spawned a discussion on what volatile does.
Some claim that w
volatile IS NOT a synchronisation mechanism. It DOES NOT guarantee atomicity nor ordering. If you cannot guarantee that all operations performed on a shared resource are atomic, then you MUST use proper locking!
Finally, I highly recommend reading these articles: