@@ -137,13 +137,15 @@ uint64_t llvm::get_threadid() {
137
137
}
138
138
139
139
static constexpr uint32_t get_max_thread_name_length_impl () {
140
- #if defined(__NetBSD__ )
140
+ #if defined(PTHREAD_MAX_NAMELEN_NP )
141
141
return PTHREAD_MAX_NAMELEN_NP;
142
142
#elif defined(__APPLE__)
143
143
return 64 ;
144
+ #elif defined(__sun__) && defined(__svr4__)
145
+ return 31 ;
144
146
#elif defined(__linux__) && HAVE_PTHREAD_SETNAME_NP
145
147
return 16 ;
146
- #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
148
+ #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
147
149
return 16 ;
148
150
#elif defined(__OpenBSD__)
149
151
return 32 ;
@@ -170,15 +172,17 @@ void llvm::set_thread_name(const Twine &Name) {
170
172
if (get_max_thread_name_length () > 0 )
171
173
NameStr = NameStr.take_back (get_max_thread_name_length () - 1 );
172
174
(void )NameStr;
173
- #if defined(__linux__) && HAVE_PTHREAD_SETNAME_NP
174
- ::pthread_setname_np (::pthread_self(), NameStr.data());
175
- #elif defined(__FreeBSD__) || defined(__OpenBSD__)
175
+ #if defined(HAVE_PTHREAD_SET_NAME_NP)
176
176
::pthread_set_name_np (::pthread_self(), NameStr.data());
177
- #elif defined(__NetBSD__)
177
+ #elif defined(HAVE_PTHREAD_SETNAME_NP)
178
+ #if defined(__NetBSD__)
178
179
::pthread_setname_np (::pthread_self(), "%s",
179
180
const_cast<char *>(NameStr.data()));
180
181
#elif defined(__APPLE__)
181
182
::pthread_setname_np (NameStr.data());
183
+ #else
184
+ ::pthread_setname_np (::pthread_self(), NameStr.data());
185
+ #endif
182
186
#endif
183
187
}
184
188
@@ -221,23 +225,24 @@ void llvm::get_thread_name(SmallVectorImpl<char> &Name) {
221
225
}
222
226
free (kp);
223
227
return ;
224
- #elif defined(__NetBSD__)
228
+ #elif defined(__linux__) && HAVE_PTHREAD_GETNAME_NP
229
+ constexpr uint32_t len = get_max_thread_name_length_impl ();
230
+ char Buffer[len] = {' \0 ' }; // FIXME: working around MSan false positive.
231
+ if (0 == ::pthread_getname_np (::pthread_self (), Buffer, len))
232
+ Name.append (Buffer, Buffer + strlen (Buffer));
233
+ #elif defined(HAVE_PTHREAD_GET_NAME_NP)
225
234
constexpr uint32_t len = get_max_thread_name_length_impl ();
226
235
char buf[len];
227
- ::pthread_getname_np (::pthread_self(), buf, len);
236
+ ::pthread_get_name_np (::pthread_self(), buf, len);
228
237
229
238
Name.append (buf, buf + strlen (buf));
230
- #elif defined(__OpenBSD__)
239
+
240
+ #elif defined(HAVE_PTHREAD_GETNAME_NP)
231
241
constexpr uint32_t len = get_max_thread_name_length_impl ();
232
242
char buf[len];
233
- ::pthread_get_name_np (::pthread_self(), buf, len);
243
+ ::pthread_getname_np (::pthread_self(), buf, len);
234
244
235
245
Name.append (buf, buf + strlen (buf));
236
- #elif defined(__linux__) && HAVE_PTHREAD_GETNAME_NP
237
- constexpr uint32_t len = get_max_thread_name_length_impl ();
238
- char Buffer[len] = {' \0 ' }; // FIXME: working around MSan false positive.
239
- if (0 == ::pthread_getname_np (::pthread_self (), Buffer, len))
240
- Name.append (Buffer, Buffer + strlen (Buffer));
241
246
#endif
242
247
}
243
248
0 commit comments