mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-20 04:56:24 +00:00
task: Add thread name support on OS X and iOS
This commit is contained in:
parent
c3963ae7a3
commit
05296b35a5
2 changed files with 29 additions and 2 deletions
12
configure.ac
12
configure.ac
|
@ -346,6 +346,18 @@ AM_CONDITIONAL(HAVE_PTHREAD, test "x$ax_pthread_ok" = "xyes")
|
||||||
dnl check for sys/prctl for setting thread name on Linux
|
dnl check for sys/prctl for setting thread name on Linux
|
||||||
AC_CHECK_HEADERS([sys/prctl.h], [], [], [AC_INCLUDES_DEFAULT])
|
AC_CHECK_HEADERS([sys/prctl.h], [], [], [AC_INCLUDES_DEFAULT])
|
||||||
|
|
||||||
|
dnl check for pthread_setname_np(const char*)
|
||||||
|
dnl which is present on OS X 10.6, iOS 3.2 and above
|
||||||
|
AC_MSG_CHECKING(for pthread_setname_np(const char*))
|
||||||
|
AC_LINK_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM(
|
||||||
|
[#include <pthread.h>],
|
||||||
|
[pthread_setname_np("example")])],
|
||||||
|
[AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID,1,
|
||||||
|
[Have function pthread_setname_np(const char*)])],
|
||||||
|
[AC_MSG_RESULT(no)])
|
||||||
|
|
||||||
dnl check for sys/uio.h for writev()
|
dnl check for sys/uio.h for writev()
|
||||||
AC_CHECK_HEADERS([sys/uio.h], [], [], [AC_INCLUDES_DEFAULT])
|
AC_CHECK_HEADERS([sys/uio.h], [], [], [AC_INCLUDES_DEFAULT])
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,10 @@
|
||||||
#include <sys/prctl.h>
|
#include <sys/prctl.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID
|
||||||
|
#include <pthread.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY_STATIC (task_debug);
|
GST_DEBUG_CATEGORY_STATIC (task_debug);
|
||||||
#define GST_CAT_DEFAULT (task_debug)
|
#define GST_CAT_DEFAULT (task_debug)
|
||||||
|
|
||||||
|
@ -246,8 +250,19 @@ gst_task_configure_name (GstTask * task)
|
||||||
GST_DEBUG_OBJECT (task, "Failed to set thread name");
|
GST_DEBUG_OBJECT (task, "Failed to set thread name");
|
||||||
}
|
}
|
||||||
GST_OBJECT_UNLOCK (task);
|
GST_OBJECT_UNLOCK (task);
|
||||||
#endif
|
#elif defined(HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID)
|
||||||
#ifdef _MSC_VER
|
const gchar *name;
|
||||||
|
|
||||||
|
GST_OBJECT_LOCK (task);
|
||||||
|
name = GST_OBJECT_NAME (task);
|
||||||
|
|
||||||
|
/* set the thread name to something easily identifiable */
|
||||||
|
GST_DEBUG_OBJECT (task, "Setting thread name to '%s'", name);
|
||||||
|
if (pthread_setname_np (name))
|
||||||
|
GST_DEBUG_OBJECT (task, "Failed to set thread name");
|
||||||
|
|
||||||
|
GST_OBJECT_UNLOCK (task);
|
||||||
|
#elif _MSC_VER
|
||||||
const gchar *name;
|
const gchar *name;
|
||||||
name = GST_OBJECT_NAME (task);
|
name = GST_OBJECT_NAME (task);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue