]> git.sesse.net Git - casparcg/commitdiff
[logging] Simplified code for setting kernel thread name in Linux.
authorHelge Norberg <helge.norberg@svt.se>
Tue, 22 Nov 2016 21:17:33 +0000 (22:17 +0100)
committerHelge Norberg <helge.norberg@svt.se>
Tue, 22 Nov 2016 21:17:33 +0000 (22:17 +0100)
common/os/linux/signal_handlers.cpp

index 27d74b6efca9e9c33f8ab6a48bc3a7f42c501d75..579558a0037c167ca84503ffd8117662bae1b851 100644 (file)
@@ -61,15 +61,12 @@ void ensure_gpf_handler_installed_for_thread(
        {
                for_thread.name = thread_description;
 
-               if (std::strlen(thread_description) > MAX_LINUX_THREAD_NAME_LEN)
-               {
-                       char truncated[MAX_LINUX_THREAD_NAME_LEN + 1];
-                       std::memcpy(truncated, thread_description, MAX_LINUX_THREAD_NAME_LEN);
-                       truncated[MAX_LINUX_THREAD_NAME_LEN] = 0;
-                       pthread_setname_np(pthread_self(), truncated);
-               }
-               else
-                       pthread_setname_np(pthread_self(), thread_description);
+               std::string kernel_thread_name = for_thread.name;
+
+               if (kernel_thread_name.length() > MAX_LINUX_THREAD_NAME_LEN)
+                       kernel_thread_name.resize(MAX_LINUX_THREAD_NAME_LEN);
+
+               pthread_setname_np(pthread_self(), kernel_thread_name.c_str());
        }
 }