That would cause a busy wait in the rendering loop (if timeToSleep is true) AND in the timerLoop (if it isn't), i.e. no cpu cycles will be saved. I don't think that both threads have to know about the state of each other. The timer loop will just try to wake up the rendering thread every x millis. If there is nothing to wake up, fine. If there is, it'll wake it up and continue sleeping. If the timer thread has a high priority, this should lead to the rendering thread being kicked in the a.. every x ms. A problem occurs, if the rendering thread takes longer than x ms to render. In that case, there will be an additional slow down in the rendering by the amount of time between the rendering thread being finished and the timer threads new "tick", which will take a maximum of x ms.