While going through many resources on multithreaded programming, reference to volatile specifier usually comes up. It is clear that usage of this keyword is not a reliable w
There is a good explanation here: http://en.wikipedia.org/wiki/Volatile_variable but slightly simplified it tells the compiler that it should not assume that the variable isn't accessed by someone else and that it is fatal to optimize it into a registrer and update only the register and not the actual storage.