Browse Source

Merge pull request #2831 from henke37/SetThreadDescription

libobs: Additionally use SetThreadDescription if possible
Jim 5 years ago
parent
commit
839cd0bdad
1 changed files with 18 additions and 0 deletions
  1. 18 0
      libobs/util/threading-windows.c

+ 18 - 0
libobs/util/threading-windows.c

@@ -16,6 +16,7 @@
 
 #include "bmem.h"
 #include "threading.h"
+#include "util/platform.h"
 
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
@@ -192,4 +193,21 @@ void os_set_thread_name(const char *name)
 #endif
 	}
 #endif
+
+	typedef HRESULT(WINAPI * set_thread_description_t)(HANDLE thread,
+							   PCWSTR desc);
+
+	HMODULE k32 = LoadLibraryW(L"Kernel32.dll");
+	set_thread_description_t std = NULL;
+	std = (set_thread_description_t)GetProcAddress(k32,
+						       "SetThreadDescription");
+	if (std) {
+		wchar_t *wname;
+		os_utf8_to_wcs_ptr(name, 0, &wname);
+
+		std(GetCurrentThread(), wname);
+
+		bfree(wname);
+	}
+	FreeLibrary(k32);
 }