So the only way I can see that a value of 200 would be printed rather than 100 is if the thread scheduler gave the main thread a chance to run immediately after setting bContinue to true, but before entering the infinite loop. This seems doubtful, but I suppose it's possible.