summaryrefslogtreecommitdiffstats
path: root/lib/frr_pthread.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2019-01-09 20:59:22 +0100
committerDonald Sharp <sharpd@cumulusnetworks.com>2019-01-09 20:59:22 +0100
commitc80bedb83bf0e91b49b81e9d2c4bd80550712c5a (patch)
treeaed1e5b3fc56054b4a866207b7936a19ae525a8c /lib/frr_pthread.c
parentlib: Cleanup thread name setting to happen at start (diff)
downloadfrr-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.c35
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);