libobs: Use SetThreadDescription if possible
It's the better way to declare thread names, but you need Windows 10, version 1607 to use it.master
parent
d5d36b2f7a
commit
6fb19a8904
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
#include "bmem.h"
|
#include "bmem.h"
|
||||||
#include "threading.h"
|
#include "threading.h"
|
||||||
|
#include "util/platform.h"
|
||||||
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
@ -192,4 +193,21 @@ void os_set_thread_name(const char *name)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue