X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=lib%2Futil.c;h=76c33cd7cee0df99f87123ddd4194f400b40d97b;hb=015ac88281952a1b43ad46e9e6300db1c6e3647b;hp=c69d7d1509d95d8b9eb1bf1996908536ab6b99ed;hpb=bbb8dee92d639331e8bd81823638267dcc895396;p=sliver-openvswitch.git diff --git a/lib/util.c b/lib/util.c index c69d7d150..76c33cd7c 100644 --- a/lib/util.c +++ b/lib/util.c @@ -46,7 +46,9 @@ DEFINE_PER_THREAD_MALLOCED_DATA(char *, subprogram_name); static char *program_version; /* Buffer used by ovs_strerror(). */ -DEFINE_PER_THREAD_DATA(struct { char s[128]; }, strerror_buffer, { "" }); +DEFINE_STATIC_PER_THREAD_DATA(struct { char s[128]; }, + strerror_buffer, + { "" }); void ovs_assert_failure(const char *where, const char *function, @@ -395,11 +397,19 @@ get_subprogram_name(void) } /* Sets 'name' as the name of the currently running thread or process. (This - * appears in log messages.) */ + * appears in log messages and may also be visible in system process listings + * and debuggers.) */ void set_subprogram_name(const char *name) { free(subprogram_name_set(xstrdup(name))); +#if HAVE_GLIBC_PTHREAD_SETNAME_NP + pthread_setname_np(pthread_self(), name); +#elif HAVE_NETBSD_PTHREAD_SETNAME_NP + pthread_setname_np(pthread_self(), "%s", name); +#elif HAVE_PTHREAD_SET_NAME_NP + pthread_set_name_np(pthread_self(), name); +#endif } /* Returns a pointer to a string describing the program version. The