diff options
author | Alois-xx <akraus1@gmx.de> | 2017-08-14 19:26:28 +0200 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2017-08-14 10:26:28 -0700 |
commit | 8d5b762c7b97f635594d4281fca709632d6180c5 (patch) | |
tree | da912ae1cc807b6b24949d1b46aaf5059f33e553 /src/inc | |
parent | b24d46b2fed0166cfe3bc2ae39e95b6a049f52fe (diff) | |
download | coreclr-8d5b762c7b97f635594d4281fca709632d6180c5.tar.gz coreclr-8d5b762c7b97f635594d4281fca709632d6180c5.tar.bz2 coreclr-8d5b762c7b97f635594d4281fca709632d6180c5.zip |
Added SetThreadDescription to set the unmanaged thread name (#12593)
* Added SetThreadDescription to set the unmanaged thread name as well when a managed thread name was set.
This will show up in future debuggers which know how to read that information or in ETW traces in the Thread Name column.
* use printf instead of wprintf which exists on all platforms.
* Removed printf
Ensure that GetProceAddress is only called once to when the method is not present.
Potential perf hit should be negligible since setting a thread name can only happen once per managed thread.
* - Moved SetThreadName code to winfix.cpp as proposed
- Finalizer and threadpool threads get their name
- GCToEEInterface::CreateBackgroundThread is also named
- but regular GC threads have no name because when I included utilcode.h things did break apart.
* Fix for data race in g_pfnSetThreadDescription
* Fix string literals on unix builds.
* Fixed nits
Settled thread name on ".NET Core ThreadPool"
Diffstat (limited to 'src/inc')
-rw-r--r-- | src/inc/utilcode.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/inc/utilcode.h b/src/inc/utilcode.h index db8465ad89..f48af70f60 100644 --- a/src/inc/utilcode.h +++ b/src/inc/utilcode.h @@ -4687,6 +4687,8 @@ inline void ClrFlsClearThreadType (TlsThreadTypeFlag flag) #define CLEAR_THREAD_TYPE_STACKWALKER() ClrFlsSetValue(TlsIdx_StackWalkerWalkingThread, NULL) #endif // DACCESS_COMPILE +HRESULT SetThreadName(HANDLE hThread, PCWSTR lpThreadDescription); + inline BOOL IsStackWalkerThread() { STATIC_CONTRACT_NOTHROW; |