| /* |
| Source: |
| http://msdn.microsoft.com/en-us/cc300389.aspx#P |
| |
| License: |
| This license governs use of code marked as “sample” or “example” available on |
| this web site without a license agreement, as provided under the section above |
| titled “NOTICE SPECIFIC TO SOFTWARE AVAILABLE ON THIS WEB SITE.” If you use |
| such code (the “software”), you accept this license. If you do not accept the |
| license, do not use the software. |
| |
| 1. Definitions |
| |
| The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” |
| have the same meaning here as under U.S. copyright law. |
| |
| A “contribution” is the original software, or any additions or changes to the |
| software. |
| |
| A “contributor” is any person that distributes its contribution under this |
| license. |
| |
| “Licensed patents” are a contributor’s patent claims that read directly on its |
| contribution. |
| |
| 2. Grant of Rights |
| |
| (A) Copyright Grant - Subject to the terms of this license, including the |
| license conditions and limitations in section 3, each contributor grants you a |
| non-exclusive, worldwide, royalty-free copyright license to reproduce its |
| contribution, prepare derivative works of its contribution, and distribute its |
| contribution or any derivative works that you create. |
| |
| (B) Patent Grant - Subject to the terms of this license, including the license |
| conditions and limitations in section 3, each contributor grants you a |
| non-exclusive, worldwide, royalty-free license under its licensed patents to |
| make, have made, use, sell, offer for sale, import, and/or otherwise dispose |
| of its contribution in the software or derivative works of the contribution in |
| the software. |
| |
| 3. Conditions and Limitations |
| |
| (A) No Trademark License- This license does not grant you rights to use any |
| contributors’ name, logo, or trademarks. |
| |
| (B) If you bring a patent claim against any contributor over patents that you |
| claim are infringed by the software, your patent license from such contributor |
| to the software ends automatically. |
| |
| (C) If you distribute any portion of the software, you must retain all |
| copyright, patent, trademark, and attribution notices that are present in the |
| software. |
| |
| (D) If you distribute any portion of the software in source code form, you may |
| do so only under this license by including a complete copy of this license |
| with your distribution. If you distribute any portion of the software in |
| compiled or object code form, you may only do so under a license that complies |
| with this license. |
| |
| (E) The software is licensed “as-is.” You bear the risk of using it. The |
| contributors give no express warranties, guarantees or conditions. You may |
| have additional consumer rights under your local laws which this license |
| cannot change. To the extent permitted under your local laws, the contributors |
| exclude the implied warranties of merchantability, fitness for a particular |
| purpose and non-infringement. |
| |
| (F) Platform Limitation - The licenses granted in sections 2(A) and 2(B) |
| extend only to the software or derivative works that you create that run on a |
| Microsoft Windows operating system product. |
| */ |
| |
| /* |
| * 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_ |