|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
5: //
6:
7: // pthread の OS ごとに違う部分を吸収する
8:
9: #include "mythread.h"
10: #include <pthread.h>
11: #if defined(HAVE_PTHREAD_NP_H)
12: #include <pthread_np.h>
13: #endif
14:
15: // pthread_set{,_}name_np() のプロトタイプは OS によってみんなフリーダムなので
16: // (というか _np は Non Portable か Non Posix のことらしい?)、
17: // ここで吸収する。
18: //
19: // MacOSX は void pthread_setname_np(name)
20: // Linux は int pthread_setname_np(threadID, name)
21: // NetBSD は int pthread_setname_np(threadID, name, arg)
22: // OpenBSD は void pthread_set_name_np(threadID, name)
23: // FreeBSD は void pthread_set_name_np(threadID, name)
24: // (2020/06 以降は pthread_setname_np(threadID, name) も追加)
25: void
26: PTHREAD_SETNAME(const char *name)
27: {
28: #if defined(HAVE_PTHREAD_SETNAME_NP_name)
29: pthread_setname_np(name);
30:
31: #elif defined(HAVE_PTHREAD_SETNAME_NP_th_name)
32: pthread_setname_np(pthread_self(), name);
33:
34: #elif defined(HAVE_PTHREAD_SETNAME_NP_th_name_arg)
35: pthread_setname_np(pthread_self(), name, NULL);
36:
37: #elif defined(HAVE_PTHREAD_SET_NAME_NP_th_name)
38: pthread_set_name_np(pthread_self(), name);
39:
40: #else
41: // デバッガとかでスレッドに名前がついてると嬉しいという程度なので、
42: // なければ気にしない。
43: #endif
44: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.