| 297 | } |
| 298 | |
| 299 | void getThreadName(std::thread::native_handle_type threadHandle, char name[kMaxThreadName]) |
| 300 | { |
| 301 | name[0] = 0; |
| 302 | |
| 303 | wchar_t* threadNameW = nullptr; |
| 304 | HRESULT hr = ::GetThreadDescription(threadHandle, &threadNameW); |
| 305 | if (SUCCEEDED(hr)) { |
| 306 | // convert name back |
| 307 | uint32_t len = wcslen(threadNameW); |
| 308 | if (len > kMaxThreadName) |
| 309 | len = kMaxThreadName; |
| 310 | for (uint32_t i = 0; i < len; ++i) { |
| 311 | name[i] = (char)threadNameW[i]; |
| 312 | } |
| 313 | name[kMaxThreadName - 1] = 0; |
| 314 | |
| 315 | LocalFree(threadNameW); |
| 316 | } |
| 317 | } |
| 318 | |
| 319 | #elif KRAM_APPLE |
| 320 |
no outgoing calls
no test coverage detected