Annotation of nono/lib/mythread.cpp, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.