Raymond Chen provides an excellent real world case of complex multi threaded debugging (The debugger lied to you because it the CPU was still juggling data in the air).
Without digging into details, it looks to me as another perfect example of what happen when you think you are smart enough to synchronize yourself.
And how lost you may be when problems arise…