title: What is the difference between std::condition_variable::wait_for and std::condition_variable::wait_until?
body: <p>The <a href="http://en.cppreference.com/w/cpp/thread/condition_variable" rel="noreferrer">reference I'm using</a> explains the two in the following way:</p>
  
  <ul>
  <li><p><code>wait_for</code> "blocks the current thread until the condition variable is woken up or after the specified timeout duration"</p></li>
  <li><p><code>wait_until</code> "blocks the current thread until the condition variable is woken up or until specified time point has been reached"</p></li>
  </ul>
  
  <p>What is the difference? Will <code>wait_until</code> spin so that the thread can continue exactly (more or less) when it is signaled, whereas <code>wait_for</code> just adds the thread back into scheduling at that point?</p>