summaryrefslogtreecommitdiffstats
path: root/osdep/threads.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-10-19 23:32:34 +0200
committerwm4 <wm4@nowhere>2014-10-19 23:48:40 +0200
commit9ba66418790f184339ad3a891f525d54459d6369 (patch)
tree0ddfa7df4ba0e7684ee9b12938c0dc07f4c5f64b /osdep/threads.c
parentc6dca55665e2710163437f09c04033d4b30e2e1a (diff)
downloadmpv-9ba66418790f184339ad3a891f525d54459d6369.tar.bz2
mpv-9ba66418790f184339ad3a891f525d54459d6369.tar.xz
Set thread name for debugging
Especially with other components (libavcodec, OSX stuff), the thread list can get quite populated. Setting the thread name helps when debugging. Since this is not portable, we check the OS variants in waf configure. old-configure just gets a special-case for glibc, since doing a full check here would probably be a waste of effort.
Diffstat (limited to 'osdep/threads.c')
-rw-r--r--osdep/threads.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/osdep/threads.c b/osdep/threads.c
index 8cb03045e4..c41007b2cb 100644
--- a/osdep/threads.c
+++ b/osdep/threads.c
@@ -14,6 +14,9 @@
* You should have received a copy of the GNU General Public License along
* with mpv. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <stdio.h>
+
+#include "config.h"
#include "threads.h"
#include "timer.h"
@@ -40,3 +43,16 @@ int mpthread_mutex_init_recursive(pthread_mutex_t *mutex)
pthread_mutexattr_destroy(&attr);
return r;
}
+
+void mpthread_set_name(const char *name)
+{
+ char tname[90];
+ snprintf(tname, sizeof(tname), "mpv %s", name);
+#if HAVE_GLIBC_THREAD_NAME
+ pthread_setname_np(pthread_self(), tname);
+#elif HAVE_BSD_THREAD_NAME
+ pthread_set_name_np(pthread_self(), tname);
+#elif HAVE_OSX_THREAD_NAME
+ pthread_setname_np(tname);
+#endif
+}