MCPcopy Create free account
hub / github.com/SpecialKO/SpecialK / SK_Thread_QueryNameFromOS

Function SK_Thread_QueryNameFromOS

src/thread.cpp:102–140  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

100static std::wstring _noname = L"";
101
102const wchar_t*
103SK_Thread_QueryNameFromOS (DWORD dwTid)
104{
105 if (_SK_UntitledThreads->find (dwTid) == _SK_UntitledThreads->cend ())
106 {
107 SK_AutoHandle hThread (
108 OpenThread ( THREAD_QUERY_LIMITED_INFORMATION,
109 FALSE,
110 dwTid ) );
111
112 if (hThread.isValid ())
113 {
114 wchar_t *wszThreadName = nullptr;
115 if (SUCCEEDED (SK_GetThreadDescription (hThread, &wszThreadName)))
116 {
117 if ( wszThreadName != nullptr &&
118 *wszThreadName != L'\0' ) // Empty strings are not useful :)
119 {
120 auto name =
121 _SK_ThreadNames.get()[dwTid].data();
122
123 __make_self_titled (dwTid);
124 wcsncpy_s (name, SK_MAX_THREAD_NAME_LEN, wszThreadName, _TRUNCATE);
125
126 LocalFree (wszThreadName);
127
128 return name;
129 }
130
131 LocalFree (wszThreadName);
132 }
133 }
134
135 _SK_UntitledThreads->insert (dwTid);
136 }
137
138 return
139 L"";
140}
141
142DWORD
143SK_Thread_FindByName (std::wstring name)

Callers 1

SK_Thread_GetNameFunction · 0.85

Calls 8

SK_GetThreadDescriptionFunction · 0.85
__make_self_titledFunction · 0.85
findMethod · 0.45
cendMethod · 0.45
isValidMethod · 0.45
dataMethod · 0.45
getMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected