| #include <pthread.h> | |
| #include <signal.h> | |
| void set_thread_name(const char *name) { | |
| #if defined(__APPLE__) | |
| ::pthread_setname_np(name); | |
| #elif defined(__FreeBSD__) | |
| ::pthread_set_name_np(::pthread_self(), name); | |
| #elif defined(__linux__) | |
| ::pthread_setname_np(::pthread_self(), name); | |
| #elif defined(__NetBSD__) | |
| ::pthread_setname_np(::pthread_self(), "%s", name); | |
| #endif | |
| } | |
| int main() { | |
| set_thread_name("hello world"); | |
| raise(SIGINT); | |
| set_thread_name("goodbye world"); | |
| raise(SIGINT); | |
| return 0; | |
| } |