Project

General

Profile

Feature #11251

Updated by nobu (Nobuyoshi Nakada) about 4 years ago

Threadの名前の取得・設定を行うAPIを追加しませんか。

#6694 や #6695 などで断続的に議論がなされ、r47670 で一部自動で名前が付けられるようになったりもしていますが、
Rubyレベルでそれを見る手段は提供されていませんし、明示的に付けることも出来ません。

今でもニーズは結構あるようです。
> "Fluentdでどのスレッドがどのプラグインに属しているのかが簡単に分かるようになるんですよね”
> https://twitter.com/repeatedly/status/608855851131011073
> "確かにRubyのスレッドに名前付けられたら良さそう。主にログで識別する用途で。"
> https://twitter.com/frsyuki/status/608863065598140417

~~~
Linux (glibc 2.12+)
int pthread_setname_np(pthread_t thread, const char *name);
int pthread_getname_np(pthread_t thread, char *name, size_t len);
FreeBSD
void pthread_set_name_np(pthread_t, const char *);
NetBSD
int pthread_getname_np(pthread_t thread, char *name, size_t len);
int pthread_setname_np(pthread_t thread, const char *name, void *arg);
http://netbsd.gw.com/cgi-bin/man-cgi?pthread_setname_np++NetBSD-current
OS X
/usr/include/pthread/pthread.h:int pthread_getname_np(pthread_t,char*,size_t);
/usr/include/pthread/pthread.h:int pthread_setname_np(const char*);
~~~

Back