Сообщение Re[3]: Узнать кто создал поток от 22.08.2017 7:42
Изменено 22.08.2017 7:43 ononim
Re[3]: Узнать кто создал поток
O>>ExitThread хукать необязательно, можно просто открывать (дублицировать в себя) и ждать контролируемые потоки (RegisterWaitForSingleObject прям так и напрашивается)
AG>Для отслеживания завершения потока достаточно контроля через DLL_THREAD_DETACH из DllMain либо TLS Callback, наверное
топикстартер не говорил что у него под рукой еще и своя длл есть.
AG>Решение на ожиданиях гипотетически подвержено гонке: поток уже завершился, и может быть новый поток с таким ID (практически нет, recycle там долгий).
Нет. Пока есть хоть один незакрытый хэндл на поток, его ID не переюзают.
AG>Но зато оно справится с TerminateThread или прямым NtTerminateThread ( для психов, готовых поддерживать такие сценарии ).
Да
AG>Для отслеживания завершения потока достаточно контроля через DLL_THREAD_DETACH из DllMain либо TLS Callback, наверное
топикстартер не говорил что у него под рукой еще и своя длл есть.
AG>Решение на ожиданиях гипотетически подвержено гонке: поток уже завершился, и может быть новый поток с таким ID (практически нет, recycle там долгий).
Нет. Пока есть хоть один незакрытый хэндл на поток, его ID не переюзают.
AG>Но зато оно справится с TerminateThread или прямым NtTerminateThread ( для психов, готовых поддерживать такие сценарии ).
Да
Re[3]: Узнать кто создал поток
O>>ExitThread хукать необязательно, можно просто открывать (дублицировать в себя) и ждать контролируемые потоки (RegisterWaitForSingleObject прям так и напрашивается)
AG>Для отслеживания завершения потока достаточно контроля через DLL_THREAD_DETACH из DllMain либо TLS Callback, наверное
топикстартер не говорил что у него под рукой еще и своя длл есть. Впрочем FlsCallback()-у она не нужна
AG>Решение на ожиданиях гипотетически подвержено гонке: поток уже завершился, и может быть новый поток с таким ID (практически нет, recycle там долгий).
Нет. Пока есть хоть один незакрытый хэндл на поток, его ID не переюзают.
AG>Но зато оно справится с TerminateThread или прямым NtTerminateThread ( для психов, готовых поддерживать такие сценарии ).
Да
AG>Для отслеживания завершения потока достаточно контроля через DLL_THREAD_DETACH из DllMain либо TLS Callback, наверное
топикстартер не говорил что у него под рукой еще и своя длл есть. Впрочем FlsCallback()-у она не нужна
AG>Решение на ожиданиях гипотетически подвержено гонке: поток уже завершился, и может быть новый поток с таким ID (практически нет, recycle там долгий).
Нет. Пока есть хоть один незакрытый хэндл на поток, его ID не переюзают.
AG>Но зато оно справится с TerminateThread или прямым NtTerminateThread ( для психов, готовых поддерживать такие сценарии ).
Да