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