199451b44SJordan Rupprecht #include <pthread.h>
299451b44SJordan Rupprecht #include <signal.h>
399451b44SJordan Rupprecht 
set_thread_name(const char * name)499451b44SJordan Rupprecht void set_thread_name(const char *name) {
599451b44SJordan Rupprecht #if defined(__APPLE__)
699451b44SJordan Rupprecht   ::pthread_setname_np(name);
7*b643deb0SMichał Górny #elif defined(__FreeBSD__) || defined(__linux__)
899451b44SJordan Rupprecht   ::pthread_setname_np(::pthread_self(), name);
999451b44SJordan Rupprecht #elif defined(__NetBSD__)
1099451b44SJordan Rupprecht   ::pthread_setname_np(::pthread_self(), "%s", const_cast<char *>(name));
1199451b44SJordan Rupprecht #endif
1299451b44SJordan Rupprecht }
1399451b44SJordan Rupprecht 
main()1499451b44SJordan Rupprecht int main() {
1599451b44SJordan Rupprecht   set_thread_name("hello world");
1699451b44SJordan Rupprecht   raise(SIGINT);
1799451b44SJordan Rupprecht   set_thread_name("goodbye world");
1899451b44SJordan Rupprecht   raise(SIGINT);
1999451b44SJordan Rupprecht   return 0;
2099451b44SJordan Rupprecht }
21