diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-01-09 20:59:22 +0100 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-01-09 20:59:22 +0100 |
commit | c80bedb83bf0e91b49b81e9d2c4bd80550712c5a (patch) | |
tree | aed1e5b3fc56054b4a866207b7936a19ae525a8c /lib/frr_pthread.c | |
parent | lib: Cleanup thread name setting to happen at start (diff) | |
download | frr-c80bedb83bf0e91b49b81e9d2c4bd80550712c5a.tar.xz frr-c80bedb83bf0e91b49b81e9d2c4bd80550712c5a.zip |
lib, bgpd: Convert frr_pthread_set_name to only cause it to set os name of the thread
The current invocation of frr_pthread_set_name was causing it reset the os_name.
There is no need for this, we now always create the pthread appropriately
to have both name and os_name. So convert this function to a simple
call through of the pthread call now.
Before(any of these changes):
sharpd@robot ~/frr1> ps -L -p 16895
PID LWP TTY TIME CMD
16895 16895 ? 00:01:39 bgpd
16895 16896 ? 00:00:54
16895 16897 ? 00:00:07 bgpd_ka
After:
sharpd@donna ~/frr1> ps -L -p 1752
PID LWP TTY TIME CMD
1752 1752 ? 00:00:00 bgpd
1752 1753 ? 00:00:00 bgpd_io
1752 1754 ? 00:00:00 bgpd_ka
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'lib/frr_pthread.c')
-rw-r--r-- | lib/frr_pthread.c | 35 |
1 files changed, 5 insertions, 30 deletions
diff --git a/lib/frr_pthread.c b/lib/frr_pthread.c index c5aec8ca7..d5a2007c4 100644 --- a/lib/frr_pthread.c +++ b/lib/frr_pthread.c @@ -117,36 +117,19 @@ void frr_pthread_destroy(struct frr_pthread *fpt) XFREE(MTYPE_FRR_PTHREAD, fpt); } -int frr_pthread_set_name(struct frr_pthread *fpt, const char *name, - const char *os_name) +int frr_pthread_set_name(struct frr_pthread *fpt) { int ret = 0; - if (name) { - pthread_mutex_lock(&fpt->mtx); - { - if (fpt->name) - XFREE(MTYPE_FRR_PTHREAD, fpt->name); - fpt->name = XSTRDUP(MTYPE_FRR_PTHREAD, name); - } - pthread_mutex_unlock(&fpt->mtx); - thread_master_set_name(fpt->master, name); - } - - if (os_name) { - pthread_mutex_lock(&fpt->mtx); - snprintf(fpt->os_name, OS_THREAD_NAMELEN, "%s", os_name); - pthread_mutex_unlock(&fpt->mtx); #ifdef HAVE_PTHREAD_SETNAME_NP # ifdef GNU_LINUX - ret = pthread_setname_np(fpt->thread, fpt->os_name); + ret = pthread_setname_np(fpt->thread, fpt->os_name); # else /* NetBSD */ - ret = pthread_setname_np(fpt->thread, fpt->os_name, NULL); + ret = pthread_setname_np(fpt->thread, fpt->os_name, NULL); # endif #elif defined(HAVE_PTHREAD_SET_NAME_NP) - pthread_set_name_np(fpt->thread, fpt->os_name); + pthread_set_name_np(fpt->thread, fpt->os_name); #endif - } return ret; } @@ -275,15 +258,7 @@ static void *fpt_run(void *arg) fpt->master->handle_signals = false; -#ifdef HAVE_PTHREAD_SETNAME_NP -# ifdef GNU_LINUX - pthread_setname_np(fpt->thread, fpt->os_name); -# else /* NetBSD */ - pthread_setname_np(fpt->thread, fpt->os_name, NULL); -# endif -#elif defined(HAVE_PTHREAD_SET_NAME_NP) - pthread_set_name_np(fpt->thread, fpt->os_name); -#endif + frr_pthread_set_name(fpt); frr_pthread_notify_running(fpt); |