mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avutil/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>
Signed-off-by: Marton Balint <cus@passwd.hu>
(cherry picked from commit fd16d8c68c
)
Signed-off-by: Brad Smith <brad@comstyle.com>
This commit is contained in:
parent
a01ed52733
commit
66f2cf8958
10
configure
vendored
10
configure
vendored
@ -2227,6 +2227,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
|
||||
@ -2329,6 +2330,8 @@ SYSTEM_FUNCS="
|
||||
posix_memalign
|
||||
prctl
|
||||
pthread_cancel
|
||||
pthread_set_name_np
|
||||
pthread_setname_np
|
||||
sched_getaffinity
|
||||
SecItemImport
|
||||
SetConsoleTextAttribute
|
||||
@ -6460,6 +6463,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
|
||||
@ -6625,6 +6629,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 pthread_set_name_np "$hdrs" pthread_set_name_np -lpthread
|
||||
check_lib pthread_setname_np "$hdrs" pthread_setname_np -lpthread
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user