title: WaitForSingleObject not work
body: <p>Please see the code below:</p>
  
  <pre><code>#include &lt;windows.h&gt;
  int main(int argc, char* argv[])
  {
      HANDLE _mutex = ::CreateMutex(NULL, FALSE, "abc");
      if (!_mutex)
          throw std::runtime_error("CreateMutex failed");
  
      if (::WaitForSingleObject(_mutex, INFINITE) != WAIT_OBJECT_0)
          throw std::runtime_error("WaitForSingleObject failed");
  
      printf("Must lock here\n");
  
      if (::WaitForSingleObject(_mutex, INFINITE) != WAIT_OBJECT_0)
          throw std::runtime_error("WaitForSingleObject failed");
  
      printf("Why come here????\n");
      return 0;
  }
  </code></pre>
  
  <p>I don't know why console print out:</p>
  
  <pre><code>Must lock here
  Why come here???
  </code></pre>
  
  <p>Does mutex not work? I want the result only show</p>
  
  <pre><code>Must lock here
  </code></pre>
  
  <p>And blocking after print the text above.</p>