From 12ee2e64be351a91865aac96e43906f09347f0ff Mon Sep 17 00:00:00 2001 From: wm4 Date: Mon, 22 Dec 2014 01:53:39 +0100 Subject: client API: fix mpv_wakeup() Of course this was going to get stuck in the retry loop. Fixes #1372. --- player/client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'player') diff --git a/player/client.c b/player/client.c index 8cd47df4ab..ff2873bf4c 100644 --- a/player/client.c +++ b/player/client.c @@ -703,8 +703,6 @@ mpv_event *mpv_wait_event(mpv_handle *ctx, double timeout) if (timeout < 0) timeout = 1e20; - if (ctx->queued_wakeup) - timeout = 0; int64_t deadline = mp_add_timeout(mp_time_us(), timeout); @@ -712,6 +710,8 @@ mpv_event *mpv_wait_event(mpv_handle *ctx, double timeout) talloc_free_children(event); while (1) { + if (ctx->queued_wakeup) + deadline = 0; // This will almost surely lead to a deadlock. (Polling is still ok.) if (ctx->suspend_count && timeout > 0) { MP_ERR(ctx, "attempting to wait while core is suspended"); -- cgit v1.2.3