To: d...@openvswitch.org,
    i.maxim...@ovn.org

The name of the current thread consists of a name with a maximum
length of 16 bytes and a thread ID. The final name may be longer
than 16 bytes. If the name is longer than 16 bytes, the thread
name will fail to be set

Signed-off-by: Songtao Zhan <zhan...@chinatelecom.cn>
---
 lib/util.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/util.c b/lib/util.c
index 96a71550d..f145d5983 100644
--- a/lib/util.c
+++ b/lib/util.c
@@ -645,6 +645,12 @@ set_subprogram_name(const char *subprogram_name)
     free(subprogram_name_set(pname));

 #if HAVE_GLIBC_PTHREAD_SETNAME_NP
+    /* The maximum thead name including '\0' supported is 16.
+     * add '>' at 14th position to highlight that the name was truncated. */
+    if (strlen(pname) > 15) {
+        pname[15] = '\0';
+        pname[14] = '>';
+    }
     pthread_setname_np(pthread_self(), pname);
 #elif HAVE_NETBSD_PTHREAD_SETNAME_NP
     pthread_setname_np(pthread_self(), "%s", pname);
-- 
2.39.1




zhan...@chinatelecom.cn
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to