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>
This commit is contained in:
		
							parent
							
								
									49ab7f8997
								
							
						
					
					
						commit
						fd16d8c68c
					
				
							
								
								
									
										10
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								configure
									
									
									
									
										vendored
									
									
								
							@ -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
 | 
			
		||||
@ -6524,6 +6527,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
 | 
			
		||||
@ -6692,6 +6696,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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user