diff mbox series

[FFmpeg-devel,1/4] lavu/thread: add an internal function for setting thread name

Message ID 20221018165307.28242-1-anton@khirnov.net
State Accepted
Commit f66e7946724a102c67bf03faaca7517d8ee2fcd9
Headers show
Series [FFmpeg-devel,1/4] lavu/thread: add an internal function for setting thread name | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Anton Khirnov Oct. 18, 2022, 4:53 p.m. UTC
Linux-only for now.
---
 configure          |  2 ++
 libavutil/thread.h | 16 +++++++++++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

Comments

Anton Khirnov Oct. 21, 2022, 8:15 a.m. UTC | #1
Will push the set soonish if nobody has more comments.
diff mbox series

Patch

diff --git a/configure b/configure
index f3fd91f592..494a03486c 100755
--- a/configure
+++ b/configure
@@ -2310,6 +2310,7 @@  SYSTEM_FUNCS="
     nanosleep
     PeekNamedPipe
     posix_memalign
+    prctl
     pthread_cancel
     sched_getaffinity
     SecItemImport
@@ -6294,6 +6295,7 @@  check_func  mmap
 check_func  mprotect
 # Solaris has nanosleep in -lrt, OpenSolaris no longer needs that
 check_func_headers time.h nanosleep || check_lib nanosleep time.h nanosleep -lrt
+check_func_headers sys/prctl.h prctl
 check_func  sched_getaffinity
 check_func  setrlimit
 check_struct "sys/stat.h" "struct stat" st_mtim.tv_nsec -D_BSD_SOURCE
diff --git a/libavutil/thread.h b/libavutil/thread.h
index 7106fd0d47..2f5e7e1cb5 100644
--- a/libavutil/thread.h
+++ b/libavutil/thread.h
@@ -24,6 +24,12 @@ 
 
 #include "config.h"
 
+#if HAVE_PRCTL
+#include <sys/prctl.h>
+#endif
+
+#include "error.h"
+
 #if HAVE_PTHREADS || HAVE_W32THREADS || HAVE_OS2THREADS
 
 #if HAVE_PTHREADS
@@ -33,7 +39,6 @@ 
 
 #include <stdlib.h>
 
-#include "error.h"
 #include "log.h"
 #include "macros.h"
 
@@ -187,4 +192,13 @@  static inline int ff_thread_once(char *control, void (*routine)(void))
 
 #endif
 
+static inline int ff_thread_setname(const char *name)
+{
+#if HAVE_PRCTL
+    return AVERROR(prctl(PR_SET_NAME, name));
+#endif
+
+    return AVERROR(ENOSYS);
+}
+
 #endif /* AVUTIL_THREAD_H */