summaryrefslogtreecommitdiff
path: root/src/inc
diff options
context:
space:
mode:
authorAlois-xx <akraus1@gmx.de>2017-08-14 19:26:28 +0200
committerJan Kotas <jkotas@microsoft.com>2017-08-14 10:26:28 -0700
commit8d5b762c7b97f635594d4281fca709632d6180c5 (patch)
treeda912ae1cc807b6b24949d1b46aaf5059f33e553 /src/inc
parentb24d46b2fed0166cfe3bc2ae39e95b6a049f52fe (diff)
downloadcoreclr-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.h2
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;