From a2846faa321fdfd57af01a21c2df08e5b5ffb6ca Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 10 Apr 2020 00:55:39 +0200 Subject: player, stats: more silly debug stuff In addition to stats.c being gross, I don't think master branch code should be littered with debug code. But it's a helpful abomination. --- common/stats.c | 16 ++++++++++++++++ common/stats.h | 3 +++ 2 files changed, 19 insertions(+) (limited to 'common') diff --git a/common/stats.c b/common/stats.c index af06457500..ce50bdc0f3 100644 --- a/common/stats.c +++ b/common/stats.c @@ -45,6 +45,7 @@ enum val_type { VAL_UNSET = 0, VAL_STATIC, VAL_STATIC_SIZE, + VAL_INC, VAL_TIME, VAL_THREAD_CPU_TIME, }; @@ -181,6 +182,10 @@ void stats_global_query(struct mpv_global *global, struct mpv_node *out) talloc_free(s); break; } + case VAL_INC: + add_stat(out, e, NULL, e->val_d, NULL); + e->val_d = 0; + break; case VAL_TIME: { double t_cpu = e->val_th / 1e6; add_stat(out, e, "cpu", t_cpu, mp_tprintf(80, "%.2f ms", t_cpu)); @@ -303,6 +308,17 @@ void stats_time_end(struct stats_ctx *ctx, const char *name) pthread_mutex_unlock(&ctx->base->lock); } +void stats_event(struct stats_ctx *ctx, const char *name) +{ + if (!IS_ACTIVE(ctx)) + return; + pthread_mutex_lock(&ctx->base->lock); + struct stat_entry *e = find_entry(ctx, name); + e->val_d += 1; + e->type = VAL_INC; + pthread_mutex_unlock(&ctx->base->lock); +} + static void register_thread(struct stats_ctx *ctx, const char *name, enum val_type type) { diff --git a/common/stats.h b/common/stats.h index 4568a57cff..caa002a407 100644 --- a/common/stats.h +++ b/common/stats.h @@ -22,6 +22,9 @@ void stats_size_value(struct stats_ctx *ctx, const char *name, double val); void stats_time_start(struct stats_ctx *ctx, const char *name); void stats_time_end(struct stats_ctx *ctx, const char *name); +// Display number of events per poll period. +void stats_event(struct stats_ctx *ctx, const char *name); + // Report the thread's CPU time. This needs to be called only once per thread. // The current thread is assumed to stay valid until the stats_ctx is destroyed // or stats_unregister_thread() is called, otherwise UB will occur. -- cgit v1.2.3