title: How to make thread sleep less than a millisecond on Windows
body: <p>On Windows I have a problem I never encountered on Unix. That is how to get a thread to sleep for less than one millisecond. On Unix you typically have a number of choices (sleep, usleep and nanosleep) to fit your needs. On Windows, however, there is only <em>Sleep</em> with millisecond granularity. </p>
  
  <p>On Unix, I can use the use the <code>select</code> system call to create a microsecond sleep which is pretty straightforward:</p>
  
  <pre><code>int usleep(long usec)
  {
      struct timeval tv;
      tv.tv_sec = usec/1000000L;
      tv.tv_usec = usec%1000000L;
      return select(0, 0, 0, 0, &amp;tv);
  }
  </code></pre>
  
  <p>How can I achieve the same on Windows?</p>