/* * Use of this source code is governed by the MICROSOFT LIMITED PUBLIC LICENSE * copyright license which can be found in the LICENSE file in the * third_party_mods/mslpl directory of the source tree or at * http://msdn.microsoft.com/en-us/cc300389.aspx#P. */ /* * The original code can be found here: * http://msdn.microsoft.com/en-us/library/xcb2z8hs(VS.71).aspx */ #ifndef WEBRTC_SYSTEM_WRAPPERS_SOURCE_THREAD_WINDOWS_SET_NAME_H_ #define WEBRTC_SYSTEM_WRAPPERS_SOURCE_THREAD_WINDOWS_SET_NAME_H_ namespace webrtc { 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 }; void SetThreadName(DWORD dwThreadID, LPCSTR szThreadName) { THREADNAME_INFO info; info.dwType = 0x1000; info.szName = szThreadName; info.dwThreadID = dwThreadID; info.dwFlags = 0; __try { RaiseException(0x406D1388, 0, sizeof(info) / sizeof(DWORD), (ULONG_PTR*)&info); } __except (EXCEPTION_CONTINUE_EXECUTION) { } } } // namespace webrtc #endif // WEBRTC_SYSTEM_WRAPPERS_SOURCE_THREAD_WINDOWS_SET_NAME_H_