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