É mais uma esquisitice da Microsoft.
Aqui tenho 8GB de memória, na grande maioria do tempo quase tudo disponível.
O erro é not enough memory for thread data
O que deu pra perceber é:
Tudo que é acessado no HD passa a fazer parte do cache, então cada vez tem mais memória em uso.
Quando faço cópia entre dois HDs, é aí que a coisa pega.
O erro vém depois, no uso do GIT ou geração/compilação do Harbour - no msvc.
Nesse caso, é reiniciar a máquina pra liberar a memória usada pelo cache.
Por pesquisa no google, o que encontrei é que foi criada uma nova função de API pra liberar memória.
Então se o programa chama a rotina antiga, pode não estar liberando memória suficiente.
Aqui um texto da Microsoft, mencionando a "nova" chamada de liberação de memória.
https://msdn.microsoft.com/en-us/library/d509d9f9.aspx
Se até o compilador C da Microsoft dá esse erro.... relatar o que pra quem?
Ainda bem que é eventual, e que já sei como resolver: reiniciando a máquina.
We recommend that an executable that calls the C run-time library (CRT) should use _beginthreadex for thread creation rather than the Windows API CreateThread. _beginthreadex initializes internal static storage used by many CRT functions in thread local storage. If you use CreateThread to create a thread, the CRT may terminate the process with R6016 when a call is made to a CRT function that requires initialized internal static storage.



