Search code examples
c++visual-c++memory-leaksc++11stdthread

Is this a BIG bug of Microsoft's implementation of std::thread?


#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#include <thread>

using namespace std;

void Hello()
{}

int main()
{
    {
        std::thread(Hello).join();
    }    

    _CrtDumpMemoryLeaks();
}

The output windows shows: (VC++ compiler version: Nov 2012 CTP)

The thread 0x5ab8 has exited with code 0 (0x0).
Detected memory leaks!
Dumping objects ->
{261} normal block at 0x002A2E00, 44 bytes long.
 Data: <                > 01 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 
Object dump complete.
The thread 0x5abc has exited with code 0 (0x0).
The thread 0x5ab4 has exited with code 0 (0x0).
The program '[0x5A94] C++11.exe' has exited with code 0 (0x0).

Solution

  • Take a look at the following MS Connect entry:

    http://connect.microsoft.com/VisualStudio/feedback/details/757212/vs-2012-rc-std-thread-reports-memory-leak-even-on-stack