2012-03-27 23:39:13 +02:00
|
|
|
#ifdef _WIN32
|
|
|
|
#include <windows.h>
|
|
|
|
#endif
|
2013-04-13 21:22:03 +02:00
|
|
|
#include "thread/threadutil.h"
|
2012-03-27 23:39:13 +02:00
|
|
|
|
|
|
|
void setCurrentThreadName(const char* szThreadName)
|
|
|
|
{
|
|
|
|
#ifdef _WIN32
|
|
|
|
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 = szThreadName;
|
|
|
|
info.dwThreadID = -1; //dwThreadID;
|
|
|
|
info.dwFlags = 0;
|
|
|
|
|
|
|
|
__try
|
|
|
|
{
|
|
|
|
RaiseException(MS_VC_EXCEPTION, 0, sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR*)&info);
|
|
|
|
}
|
|
|
|
__except(EXCEPTION_CONTINUE_EXECUTION)
|
|
|
|
{}
|
|
|
|
#else
|
|
|
|
// Do nothing
|
|
|
|
#endif
|
|
|
|
}
|