Copy SetThreadName from webrtc/base/thread.cc into thread_win.cc
(webrtc/system_wrappers/source/thread_win.cc). It would be good to consolidate these helpers at some point. BUG= Review URL: https://webrtc-codereview.appspot.com/37349004 Cr-Commit-Position: refs/heads/master@{#8439} git-svn-id: http://webrtc.googlecode.com/svn/trunk@8439 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
661af50dd5
commit
d3d3baaa8e
@ -82,7 +82,6 @@ static_library("system_wrappers") {
|
||||
"source/rw_lock_posix.h",
|
||||
"source/rw_lock_win.cc",
|
||||
"source/rw_lock_win.h",
|
||||
"source/set_thread_name_win.h",
|
||||
"source/sleep.cc",
|
||||
"source/sort.cc",
|
||||
"source/tick_util.cc",
|
||||
|
@ -1,108 +0,0 @@
|
||||
/*
|
||||
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_
|
@ -16,13 +16,42 @@
|
||||
|
||||
#include "webrtc/base/checks.h"
|
||||
#include "webrtc/system_wrappers/interface/trace.h"
|
||||
#include "webrtc/system_wrappers/source/set_thread_name_win.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace {
|
||||
void CALLBACK RaiseFlag(ULONG_PTR param) {
|
||||
*reinterpret_cast<bool*>(param) = true;
|
||||
}
|
||||
|
||||
// TODO(tommi): This is borrowed from webrtc/base/thread.cc, but we can't
|
||||
// include thread.h from here since thread.h pulls in libjingle dependencies.
|
||||
// Would be good to consolidate.
|
||||
|
||||
// As seen on MSDN.
|
||||
// http://msdn.microsoft.com/en-us/library/xcb2z8hs(VS.71).aspx
|
||||
#define MSDEV_SET_THREAD_NAME 0x406D1388
|
||||
typedef struct tagTHREADNAME_INFO {
|
||||
DWORD dwType;
|
||||
LPCSTR szName;
|
||||
DWORD dwThreadID;
|
||||
DWORD dwFlags;
|
||||
} THREADNAME_INFO;
|
||||
|
||||
void SetThreadName(DWORD dwThreadID, LPCSTR szThreadName) {
|
||||
THREADNAME_INFO info;
|
||||
info.dwType = 0x1000;
|
||||
info.szName = szThreadName;
|
||||
info.dwThreadID = dwThreadID;
|
||||
info.dwFlags = 0;
|
||||
|
||||
__try {
|
||||
RaiseException(MSDEV_SET_THREAD_NAME, 0, sizeof(info) / sizeof(DWORD),
|
||||
reinterpret_cast<ULONG_PTR*>(&info));
|
||||
}
|
||||
__except(EXCEPTION_CONTINUE_EXECUTION) {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ThreadWindows::ThreadWindows(ThreadRunFunction func, ThreadObj obj,
|
||||
|
@ -92,7 +92,6 @@
|
||||
'source/rw_lock_posix.h',
|
||||
'source/rw_lock_win.cc',
|
||||
'source/rw_lock_win.h',
|
||||
'source/set_thread_name_win.h',
|
||||
'source/sleep.cc',
|
||||
'source/sort.cc',
|
||||
'source/tick_util.cc',
|
||||
|
Loading…
x
Reference in New Issue
Block a user