Message ID | ZZYx7OhEGX1R9r8n@humpty.home.comstyle.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] lavu/thread: add support for setting thread name on *bsd and solaris | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | fail | Make failed |
On Wed, Jan 03, 2024 at 11:19:56PM -0500, Brad Smith wrote: > lavu/thread: add support for setting thread name on *bsd and solaris > > FreeBSD/DragonFly/Solaris use pthread_setname_np(). OpenBSD uses pthread_set_name_np(). > > Signed-off-by: Brad Smith <brad@comstyle.com> > --- > configure | 10 ++++++++++ > libavutil/thread.h | 14 ++++++++++++-- > 2 files changed, 22 insertions(+), 2 deletions(-) this breaks build on linux ./configure --enable-pthreads ERROR: pthreads requested but not found If you think configure made a mistake, make sure you are using the latest version from Git. If the latest version fails, report the problem to the ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.libera.chat. Include the log file "ffbuild/config.log" produced by configure as this will help solve the problem. [...]
On 2024-01-06 12:27 p.m., Michael Niedermayer wrote: > On Wed, Jan 03, 2024 at 11:19:56PM -0500, Brad Smith wrote: >> lavu/thread: add support for setting thread name on *bsd and solaris >> >> FreeBSD/DragonFly/Solaris use pthread_setname_np(). OpenBSD uses pthread_set_name_np(). >> >> Signed-off-by: Brad Smith <brad@comstyle.com> >> --- >> configure | 10 ++++++++++ >> libavutil/thread.h | 14 ++++++++++++-- >> 2 files changed, 22 insertions(+), 2 deletions(-) > this breaks build on linux > > ./configure --enable-pthreads > ERROR: pthreads requested but not found > > If you think configure made a mistake, make sure you are using the latest > version from Git. If the latest version fails, report the problem to the > ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.libera.chat. > Include the log file "ffbuild/config.log" produced by configure as this will help > solve the problem. Sent a v2 diff.
diff --git a/configure b/configure index d15cfa4703..154db61c16 100755 --- a/configure +++ b/configure @@ -2239,6 +2239,7 @@ HEADERS_LIST=" opencv2_core_core_c_h OpenGL_gl3_h poll_h + pthread_np_h sys_param_h sys_resource_h sys_select_h @@ -2341,6 +2342,8 @@ SYSTEM_FUNCS=" posix_memalign prctl pthread_cancel + pthread_set_name_np + pthread_setname_np sched_getaffinity SecItemImport SetConsoleTextAttribute @@ -6521,6 +6524,7 @@ check_headers malloc.h check_headers mftransform.h check_headers net/udplite.h check_headers poll.h +check_headers pthread_np.h check_headers sys/param.h check_headers sys/resource.h check_headers sys/select.h @@ -6689,6 +6693,12 @@ if ! disabled pthreads && ! enabled w32threads && ! enabled os2threads; then if enabled pthreads; then check_builtin sem_timedwait semaphore.h "sem_t *s; sem_init(s,0,0); sem_timedwait(s,0); sem_destroy(s)" $pthreads_extralibs check_func pthread_cancel $pthreads_extralibs + hdrs=pthread.h + if enabled pthread_np_h; then + hdrs="$hdrs pthread_np.h" + fi + check_lib pthreads "$hdrs" pthread_set_name_np -lpthread + check_lib pthreads "$hdrs" pthread_setname_np -lpthread fi fi diff --git a/libavutil/thread.h b/libavutil/thread.h index 2ded498c89..fa74dd2ea7 100644 --- a/libavutil/thread.h +++ b/libavutil/thread.h @@ -26,6 +26,8 @@ #if HAVE_PRCTL #include <sys/prctl.h> +#elif (HAVE_PTHREAD_SETNAME_NP || HAVE_PTHREAD_SET_NAME_NP) && HAVE_PTHREAD_NP_H +#include <pthread_np.h> #endif #include "error.h" @@ -213,11 +215,19 @@ static inline int ff_thread_once(char *control, void (*routine)(void)) static inline int ff_thread_setname(const char *name) { + int ret = 0; + #if HAVE_PRCTL - return AVERROR(prctl(PR_SET_NAME, name)); + ret = AVERROR(prctl(PR_SET_NAME, name)); +#elif HAVE_PTHREAD_SETNAME_NP + ret = AVERROR(pthread_setname_np(pthread_self(), name)); +#elif HAVE_PTHREAD_SET_NAME_NP + pthread_set_name_np(pthread_self(), name); +#else + ret = AVERROR(ENOSYS); #endif - return AVERROR(ENOSYS); + return ret; } #endif /* AVUTIL_THREAD_H */
lavu/thread: add support for setting thread name on *bsd and solaris FreeBSD/DragonFly/Solaris use pthread_setname_np(). OpenBSD uses pthread_set_name_np(). Signed-off-by: Brad Smith <brad@comstyle.com> --- configure | 10 ++++++++++ libavutil/thread.h | 14 ++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-)