Browse Source

libobs: Truncate thread names on Linux

The pthread_setname_np manpage states:

The thread name is a meaningful C language string, whose length is
restricted to 16 characters, including the terminating null byte ('\0').
Luke Yelavich 7 years ago
parent
commit
5fe5027630
1 changed files with 7 additions and 1 deletions
  1. 7 1
      libobs/util/threading-posix.c

+ 7 - 1
libobs/util/threading-posix.c

@@ -253,6 +253,12 @@ void os_set_thread_name(const char *name)
 #elif defined(__FreeBSD__)
 	pthread_set_name_np(pthread_self(), name);
 #elif defined(__GLIBC__) && !defined(__MINGW32__)
-	pthread_setname_np(pthread_self(), name);
+	if (strlen(name) <= 15) {
+		pthread_setname_np(pthread_self(), name);
+	} else {
+		char *thread_name = bstrdup_n(name, 15);
+		pthread_setname_np(pthread_self(), thread_name);
+		bfree(thread_name);
+	}
 #endif
 }