mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-10-31 10:44:49 +01:00 
			
		
		
		
	Merge pull request #11828 from liamwhite/setthreadescription
common: use SetThreadDescription API for thread names
This commit is contained in:
		
						commit
						13beb85514
					
				| @ -11,6 +11,7 @@ | ||||
| #include <mach/mach.h> | ||||
| #elif defined(_WIN32) | ||||
| #include <windows.h> | ||||
| #include "common/string_util.h" | ||||
| #else | ||||
| #if defined(__Bitrig__) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__) | ||||
| #include <pthread_np.h> | ||||
| @ -82,29 +83,8 @@ void SetCurrentThreadPriority(ThreadPriority new_priority) { | ||||
| #ifdef _MSC_VER | ||||
| 
 | ||||
| // Sets the debugger-visible name of the current thread.
 | ||||
| // Uses trick documented in:
 | ||||
| // https://docs.microsoft.com/en-us/visualstudio/debugger/how-to-set-a-thread-name-in-native-code
 | ||||
| void SetCurrentThreadName(const char* name) { | ||||
|     static const DWORD MS_VC_EXCEPTION = 0x406D1388; | ||||
| 
 | ||||
| #pragma pack(push, 8) | ||||
|     struct THREADNAME_INFO { | ||||
|         DWORD dwType;     // must be 0x1000
 | ||||
|         LPCSTR szName;    // pointer to name (in user addr space)
 | ||||
|         DWORD dwThreadID; // thread ID (-1=caller thread)
 | ||||
|         DWORD dwFlags;    // reserved for future use, must be zero
 | ||||
|     } info; | ||||
| #pragma pack(pop) | ||||
| 
 | ||||
|     info.dwType = 0x1000; | ||||
|     info.szName = name; | ||||
|     info.dwThreadID = std::numeric_limits<DWORD>::max(); | ||||
|     info.dwFlags = 0; | ||||
| 
 | ||||
|     __try { | ||||
|         RaiseException(MS_VC_EXCEPTION, 0, sizeof(info) / sizeof(ULONG_PTR), (ULONG_PTR*)&info); | ||||
|     } __except (EXCEPTION_CONTINUE_EXECUTION) { | ||||
|     } | ||||
|     SetThreadDescription(GetCurrentThread(), UTF8ToUTF16W(name).data()); | ||||
| } | ||||
| 
 | ||||
| #else // !MSVC_VER, so must be POSIX threads
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user