From 320a307e9000b7d97044d11bcfd4e85cae8cec10 Mon Sep 17 00:00:00 2001 From: Casey Muratori Date: Fri, 24 May 2024 15:56:29 -0700 Subject: [PATCH] Dynamically linked SetThreadDescription to avoid requiring latest SDK/kernel version on Windows --- src/os/core/win32/os_core_win32.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/os/core/win32/os_core_win32.c b/src/os/core/win32/os_core_win32.c index b131287f..e4b523c8 100644 --- a/src/os/core/win32/os_core_win32.c +++ b/src/os/core/win32/os_core_win32.c @@ -41,10 +41,14 @@ typedef PVOID W32_MapViewOfFile3_Type(HANDLE FileMapping, ULONG PageProtection, void* ExtendedParameters, ULONG ParameterCount); +typedef HRESULT W32_SetThreadDescription_Type(HANDLE hThread, + PCWSTR lpThreadDescription); global W32_VirtualAlloc2_Type *w32_VirtualAlloc2_func = 0; global W32_MapViewOfFile3_Type *w32_MapViewOfFile3_func = 0; +global W32_SetThreadDescription_Type *w32_SetThreadDescription_func = 0; + //////////////////////////////// //~ rjf: Globals @@ -597,9 +601,10 @@ os_set_thread_name(String8 name) Temp scratch = scratch_begin(0, 0); // rjf: windows 10 style + if(w32_SetThreadDescription_func) { String16 name16 = str16_from_8(scratch.arena, name); - HRESULT hr = SetThreadDescription(GetCurrentThread(), (WCHAR*)name16.str); + HRESULT hr = w32_SetThreadDescription_func(GetCurrentThread(), (WCHAR*)name16.str); } // rjf: raise-exception style