linux: provide an event thread name
authorAlexander Stein <alexander.stein@mailbox.org>
Wed, 5 Feb 2020 20:41:07 +0000 (21:41 +0100)
committerChris Dickens <christopher.a.dickens@gmail.com>
Fri, 7 Feb 2020 23:59:30 +0000 (15:59 -0800)
Instead of having just the application name as thread name, provide a more
descriptive one, which can e.g. read by htop.
If setting the name fails, the thread will still work as intended, just
raise a warning in this case.

Closes #689

Signed-off-by: Alexander Stein <alexander.stein@mailbox.org>
Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
configure.ac
libusb/os/linux_netlink.c
libusb/os/linux_udev.c
libusb/version_nano.h

index 53a904e..6512078 100644 (file)
@@ -143,6 +143,7 @@ linux)
                THREAD_CFLAGS="-pthread"
                LIBS="${LIBS} -pthread"
        fi
+       AC_CHECK_FUNCS([pthread_setname_np])
        ;;
 netbsd)
        AC_DEFINE([OS_NETBSD], [1], [NetBSD backend])
index 025ddd5..9917df2 100644 (file)
@@ -365,6 +365,12 @@ static void *linux_netlink_event_thread_main(void *arg)
 
        UNUSED(arg);
 
+#if defined(HAVE_PTHREAD_SETNAME_NP)
+       r = pthread_setname_np(pthread_self(), "libusb_event");
+       if (r)
+               usbi_warn(NULL, "failed to set hotplug event thread name, error=%d", r);
+#endif
+
        usbi_dbg("netlink event thread entering");
 
        while ((r = poll(fds, 2, -1)) >= 0 || errno == EINTR) {
index d079c79..d8851cf 100644 (file)
@@ -176,6 +176,12 @@ static void *linux_udev_event_thread_main(void *arg)
                 .events = POLLIN},
        };
 
+#if defined(HAVE_PTHREAD_SETNAME_NP)
+       r = pthread_setname_np(pthread_self(), "libusb_event");
+       if (r)
+               usbi_warn(NULL, "failed to set hotplug event thread name, error=%d", r);
+#endif
+
        usbi_dbg("udev event thread entering.");
 
        while ((r = poll(fds, 2, -1)) >= 0 || errno == EINTR) {
index 2256782..05e7280 100644 (file)
@@ -1 +1 @@
-#define LIBUSB_NANO 11455
+#define LIBUSB_NANO 11456