]> git.sesse.net Git - casparcg/blobdiff - common/os/linux/signal_handlers.cpp
[logging] Simplified code for setting kernel thread name in Linux.
[casparcg] / 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());
        }
 }