From 4b4d3a57bf9c793c8a938ab1cdcf4e856d5b0ca1 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/client.c') diff --git a/player/client.c b/player/client.c index 11a2fda4d8..4323f2e873 100644 --- a/player/client.c +++ b/player/client.c @@ -706,8 +706,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); @@ -715,6 +713,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