| 
							
								 | 
							
							/*
 | 
						
						
						
						
							 | 
							
								 | 
							
							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_
 |