pytorch/c10/util/thread_name.cpp
Xiang Gao 15c7486416 Canonicalize includes in c10, and add tests for it (#36299)
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/36299

Test Plan: Imported from OSS

Differential Revision: D20943005

Pulled By: ezyang

fbshipit-source-id: 9dd0a58824bd0f1b5ad259942f92954ba1f63eae
2020-04-10 12:07:52 -07:00

25 lines
500 B
C++

#include <c10/util/thread_name.h>
#include <algorithm>
#if defined(__GLIBC__) && !defined(__APPLE__) && !defined(__ANDROID__)
#define C10_HAS_PTHREAD_SETNAME_NP
#endif
#ifdef C10_HAS_PTHREAD_SETNAME_NP
#include <pthread.h>
#endif
namespace c10 {
void setThreadName(std::string name) {
#ifdef C10_HAS_PTHREAD_SETNAME_NP
constexpr size_t kMaxThreadName = 15;
name.resize(std::min(name.size(), kMaxThreadName));
pthread_setname_np(pthread_self(), name.c_str());
#endif
}
} // namespace c10