From 0c0b18615a9bf464ccde160d71e90200328a43ff Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Thu, 21 Sep 2017 22:54:44 +0200 Subject: [PATCH] Use winapi function to set thread name. Fairly recent Windows SDK is required, unfortunately. --- common/TracySystem.cpp | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/common/TracySystem.cpp b/common/TracySystem.cpp index 6dfe489f..544aac1d 100755 --- a/common/TracySystem.cpp +++ b/common/TracySystem.cpp @@ -16,32 +16,9 @@ const char* PointerCheckA = "tracy"; void SetThreadName( std::thread& thread, const char* name ) { #ifdef _WIN32 - const DWORD MS_VC_EXCEPTION=0x406D1388; - -# pragma pack( push, 8 ) - struct THREADNAME_INFO - { - DWORD dwType; - LPCSTR szName; - DWORD dwThreadID; - DWORD dwFlags; - }; -# pragma pack(pop) - - DWORD ThreadId = GetThreadId( static_cast( thread.native_handle() ) ); - THREADNAME_INFO info; - info.dwType = 0x1000; - info.szName = name; - info.dwThreadID = ThreadId; - info.dwFlags = 0; - - __try - { - RaiseException( MS_VC_EXCEPTION, 0, sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR*)&info ); - } - __except(EXCEPTION_EXECUTE_HANDLER) - { - } + wchar_t buf[256]; + mbstowcs( buf, name, 256 ); + SetThreadDescription( static_cast( thread.native_handle() ), buf ); #else pthread_setname_np( thread.native_handle(), name ); #endif