Отдельные потоки и утечка памяти

Может кто-нибудь объяснить мне, почему этот простой код утечки памяти?

Я полагаю, что, поскольку pthreads создаются с отключенным состоянием, их ресурсы должны быть освобождены сразу после его завершения, но это не так.

Моя среда Qt5.2.

#include <QCoreApplication>
#include <windows.h>

void *threadFunc( void *arg )
    {
    printf("#");
    pthread_exit(NULL);
    }

int main()
    {
    pthread_t thread;
    pthread_attr_t attr;

    while(1)
        {
        printf("\nStarting threads...\n");
        for(int idx=0;idx<100;idx++)
            {
            pthread_attr_init(&attr);
            pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
            pthread_create( &thread, &attr, &threadFunc, NULL);
            pthread_attr_destroy ( &attr );
            }
        printf("\nSleeping 10 seconds...\n");
        Sleep(10000);
        }
    }

ОБНОВИТЬ:

Я обнаружил, что если я добавлю небольшую задержку в 5 миллисекунд внутриfor петля утечкаПУТЬ помедленнее:

    for(int idx=0;idx<100;idx++)
        {
        pthread_attr_init(&attr);
        pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
        pthread_create( &thread, &attr, &threadFunc, NULL);
        pthread_attr_destroy ( &attr );
        Sleep(5); /// <--- 5 MILLISECONDS DELAY ///
        }

 Это меня бесит, может кто-нибудь сказать, что происходит? Как эта небольшая задержка может привести к таким значительным изменениям? (или изменить поведение любым способом)

Любой совет будет принята с благодарностью.

Благодарю.

UPDATE2:

Эта утечка наблюдалась на платформах Windows (W7 и XP), утечки на платформах Linux не наблюдалось (спасибо @MichaelGoren)

Ответы на вопрос(5)

Ваш ответ на вопрос