This comes about usually when two threads are passing messages by location and checking member variables of a class the two can accessibility. There is almost always a race condition when a single thread phone calls rest to give another thread time to complete a process (Unless of course that sleep is in a very loop, with a few checking mechanism).