mirror of
https://github.com/owntone/owntone-server.git
synced 2025-11-20 18:06:14 -05:00
[misc] PR #1941 adjustments
This commit is contained in:
30
configure.ac
30
configure.ac
@@ -75,33 +75,29 @@ AC_SEARCH_LIBS([timer_settime], [rt],
|
||||
AC_SEARCH_LIBS([pthread_exit], [pthread], [],
|
||||
[AC_MSG_ERROR([[pthreads library is required]])])
|
||||
AC_SEARCH_LIBS([pthread_setname_np], [pthread],
|
||||
[dnl Validate pthread_setname_np with 2 args (some have 1)
|
||||
AC_MSG_CHECKING([[for two-parameter pthread_setname_np]])
|
||||
[AC_MSG_CHECKING([[for two-parameter pthread_setname_np]])
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[@%:@include <pthread.h>]],
|
||||
[[pthread_setname_np(pthread_self(), "name");]])],
|
||||
[AC_MSG_RESULT([yes])
|
||||
AC_DEFINE([HAVE_PTHREAD_SETNAME_NP_2], 1,
|
||||
AC_DEFINE([HAVE_PTHREAD_SETNAME_NP], 1,
|
||||
[Define to 1 if you have pthread_setname_np with 2 args])],
|
||||
[AC_MSG_RESULT([[no]])])],
|
||||
[AC_SEARCH_LIBS([pthread_set_name_np], [pthread],
|
||||
[AC_CHECK_FUNCS([pthread_set_name_np])])])
|
||||
AC_SEARCH_LIBS([pthread_setname_np], [pthread],
|
||||
[dnl Validate pthread_setname_np with 1 arg (some have 2)
|
||||
AC_MSG_CHECKING([[for single-parameter pthread_setname_np]])
|
||||
[AC_MSG_RESULT([[no]])])
|
||||
AC_MSG_CHECKING([[for MacOS single-parameter pthread_setname_np]])
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[@%:@include <pthread.h>]],
|
||||
[[pthread_setname_np("name");]])],
|
||||
[AC_MSG_RESULT([yes])
|
||||
AC_DEFINE([HAVE_PTHREAD_SETNAME_NP_1], 1,
|
||||
AC_DEFINE([HAVE_PTHREAD_SETNAME_NP_MACOS], 1,
|
||||
[Define to 1 if you have pthread_setname_np with 1 arg])],
|
||||
[AC_MSG_RESULT([[no]])])],
|
||||
[AC_SEARCH_LIBS([pthread_set_name_np], [pthread],
|
||||
[AC_CHECK_FUNCS([pthread_set_name_np])])])
|
||||
[AC_MSG_RESULT([[no]])])])
|
||||
AC_SEARCH_LIBS([pthread_set_name_np], [pthread],
|
||||
[AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP], 1,
|
||||
[Define to 1 if you have pthread_set_name_np])])
|
||||
AC_SEARCH_LIBS([pthread_getname_np], [pthread],
|
||||
[AC_DEFINE([HAVE_PTHREAD_GETNAME_NP], 1,
|
||||
[Define to 1 if you have pthread_getname_np])]
|
||||
[AC_SEARCH_LIBS([pthread_get_name_np], [pthread],
|
||||
[AC_DEFINE([HAVE_PTHREAD_GETNAME_NP], 1,
|
||||
[Define to 1 if you have pthread_get_name_np])])])
|
||||
[Define to 1 if you have pthread_getname_np])])
|
||||
AC_SEARCH_LIBS([pthread_get_name_np], [pthread],
|
||||
[AC_DEFINE([HAVE_PTHREAD_GET_NAME_NP], 1,
|
||||
[Define to 1 if you have pthread_get_name_np])])
|
||||
AC_SEARCH_LIBS([pthread_getthreadid_np], [pthread],
|
||||
[AC_DEFINE([HAVE_PTHREAD_GETTHREADID_NP], 1,
|
||||
[Define to 1 if you have pthread_getthreadid_np])])
|
||||
|
||||
@@ -1691,6 +1691,7 @@ cache(void *arg)
|
||||
int i;
|
||||
|
||||
thread_setname("cache");
|
||||
|
||||
ret = cache_open();
|
||||
if (ret < 0)
|
||||
{
|
||||
|
||||
@@ -137,6 +137,7 @@ _evthr_loop(void *args)
|
||||
}
|
||||
|
||||
thread_setname("evthr");
|
||||
|
||||
thread->evbase = event_base_new();
|
||||
thread->event = event_new(thread->evbase, thread->rdr,
|
||||
EV_READ | EV_PERSIST, _evthr_read_cmd, args);
|
||||
|
||||
@@ -818,6 +818,7 @@ static void *
|
||||
pipe_thread_run(void *arg)
|
||||
{
|
||||
thread_setname("pipe");
|
||||
|
||||
event_base_dispatch(evbase_pipe);
|
||||
|
||||
pthread_exit(NULL);
|
||||
|
||||
38
src/misc.c
38
src/misc.c
@@ -1852,28 +1852,29 @@ mutex_init(pthread_mutex_t *mutex)
|
||||
return err;
|
||||
}
|
||||
|
||||
int64_t
|
||||
thread_gettid(pthread_t p)
|
||||
int
|
||||
thread_gettid(void)
|
||||
{
|
||||
int64_t tid = -1;
|
||||
int tid;
|
||||
#if defined(HAVE_GETTID)
|
||||
tid = (int64_t)gettid();
|
||||
tid = (int)gettid();
|
||||
#elif defined(HAVE_PTHREAD_GETTHREADID_NP)
|
||||
tid = (int64_t)pthread_getthreadid_np();
|
||||
tid = pthread_getthreadid_np();
|
||||
#else //defacto thread id
|
||||
tid = (int64_t)p;
|
||||
tid = (int)pthread_self();
|
||||
#endif
|
||||
return tid;
|
||||
}
|
||||
|
||||
void
|
||||
thread_getname(pthread_t thread, char *name, size_t len)
|
||||
thread_getname(char *name, size_t len)
|
||||
{
|
||||
#if defined(HAVE_PTHREAD_GETNAME_NP)
|
||||
pthread_getname_np(thread, name, len);
|
||||
pthread_getname_np(pthread_self(), name, len);
|
||||
#elif defined(HAVE_PTHREAD_GET_NAME_NP)
|
||||
pthread_get_name_np(thread, name, len);
|
||||
pthread_get_name_np(pthread_self(), name, len);
|
||||
#else
|
||||
if (len > 0)
|
||||
name[0] = '\0';
|
||||
#endif
|
||||
}
|
||||
@@ -1881,26 +1882,21 @@ thread_getname(pthread_t thread, char *name, size_t len)
|
||||
void
|
||||
thread_getnametid(char *buf, size_t len)
|
||||
{
|
||||
int64_t tid;
|
||||
int tid;
|
||||
char thread_name[32];
|
||||
pthread_t p = pthread_self();
|
||||
|
||||
thread_getname(p, thread_name, sizeof(thread_name));
|
||||
tid = thread_gettid(p) % 10000;
|
||||
snprintf(buf, len, "%s (%" PRId64 ")", thread_name, tid);
|
||||
thread_getname(thread_name, sizeof(thread_name));
|
||||
tid = thread_gettid() % 10000;
|
||||
snprintf(buf, len, "%s (%d)", thread_name, tid);
|
||||
}
|
||||
|
||||
void
|
||||
thread_setname(const char *name)
|
||||
{
|
||||
#if defined(HAVE_PTHREAD_SETNAME_NP_1)
|
||||
pthread_setname_np(name);
|
||||
DPRINTF(E_DBG, L_MISC,
|
||||
"%s: Single argument pthread_setname_np(%s). Be aware! It must be called from thread whose name is to be changed\n",
|
||||
__func__, name
|
||||
);
|
||||
#elif defined(HAVE_PTHREAD_SETNAME_NP_2)
|
||||
#if defined(HAVE_PTHREAD_SETNAME_NP)
|
||||
pthread_setname_np(pthread_self(), name);
|
||||
#elif defined(HAVE_PTHREAD_SETNAME_NP_MACOS)
|
||||
pthread_setname_np(name);
|
||||
#elif defined(HAVE_PTHREAD_SET_NAME_NP)
|
||||
pthread_set_name_np(pthread_self(), name);
|
||||
#endif
|
||||
|
||||
@@ -318,13 +318,12 @@ buildopts_get(void);
|
||||
int
|
||||
mutex_init(pthread_mutex_t *mutex);
|
||||
|
||||
// wrapper for gettid/pthread_getthreadid_np
|
||||
int64_t
|
||||
thread_gettid(pthread_t p);
|
||||
int
|
||||
thread_gettid(void);
|
||||
|
||||
// wrapper for pthread_getname_np/pthread_get_name_np
|
||||
void
|
||||
thread_getname(pthread_t thread, char *name, size_t len);
|
||||
thread_getname(char *name, size_t len);
|
||||
|
||||
void
|
||||
thread_getnametid(char *buf, size_t len);
|
||||
|
||||
@@ -472,6 +472,7 @@ airplay_events(void *arg)
|
||||
{
|
||||
|
||||
thread_setname("airplay events");
|
||||
|
||||
event_base_dispatch(evbase);
|
||||
|
||||
pthread_exit(NULL);
|
||||
|
||||
@@ -416,6 +416,7 @@ static void *
|
||||
websocket(void *arg)
|
||||
{
|
||||
thread_setname("websocket");
|
||||
|
||||
listener_add(listener_cb, LISTENER_UPDATE | LISTENER_DATABASE | LISTENER_PAIRING | LISTENER_SPOTIFY | LISTENER_LASTFM | LISTENER_SPEAKER
|
||||
| LISTENER_PLAYER | LISTENER_OPTIONS | LISTENER_VOLUME | LISTENER_QUEUE, NULL);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user