From 2619d8eff4e2c1cf54574acfbd0cd5895e362e45 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 4 Sep 2016 15:43:12 +0200 Subject: client API: implement mpv_suspend/resume slightly differently Why do these API calls even still exist? I don't know, and maybe they don't make any sense anymore. But whether they should be removed or not is not a decision I want to make now. I want to get rid of mp_dispatch_suspend/resume(), though. So implement the client APIs slightly differently. --- player/client.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'player/client.c') diff --git a/player/client.c b/player/client.c index 81b94abd22..ac89d3a141 100644 --- a/player/client.c +++ b/player/client.c @@ -330,8 +330,11 @@ void mpv_suspend(mpv_handle *ctx) } pthread_mutex_unlock(&ctx->lock); - if (do_suspend) - mp_dispatch_suspend(ctx->mpctx->dispatch); + if (do_suspend) { + mp_dispatch_lock(ctx->mpctx->dispatch); + ctx->mpctx->suspend_count++; + mp_dispatch_unlock(ctx->mpctx->dispatch); + } } void mpv_resume(mpv_handle *ctx) @@ -347,8 +350,11 @@ void mpv_resume(mpv_handle *ctx) } pthread_mutex_unlock(&ctx->lock); - if (do_resume) - mp_dispatch_resume(ctx->mpctx->dispatch); + if (do_resume) { + mp_dispatch_lock(ctx->mpctx->dispatch); + ctx->mpctx->suspend_count--; + mp_dispatch_unlock(ctx->mpctx->dispatch); + } } void mp_resume_all(mpv_handle *ctx) @@ -358,8 +364,11 @@ void mp_resume_all(mpv_handle *ctx) ctx->suspend_count = 0; pthread_mutex_unlock(&ctx->lock); - if (do_resume) - mp_dispatch_resume(ctx->mpctx->dispatch); + if (do_resume) { + mp_dispatch_lock(ctx->mpctx->dispatch); + ctx->mpctx->suspend_count--; + mp_dispatch_unlock(ctx->mpctx->dispatch); + } } static void lock_core(mpv_handle *ctx) -- cgit v1.2.3