]> git.sesse.net Git - vlc/commitdiff
vout: refactor deadline computation for cond_timedwait in vout_control_Pop
authorFelix Abecassis <felix.abecassis@gmail.com>
Wed, 19 Feb 2014 11:30:05 +0000 (12:30 +0100)
committerJean-Baptiste Kempf <jb@videolan.org>
Thu, 20 Feb 2014 12:10:33 +0000 (13:10 +0100)
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
src/video_output/control.c

index 7b4a19b5c991d0ad6ee9bd6fca42d3934dbc8274..f317196b4139e438e5bb49c63f6148f2fec63086 100644 (file)
@@ -185,14 +185,11 @@ int vout_control_Pop(vout_control_t *ctrl, vout_control_cmd_t *cmd,
         vlc_cond_broadcast(&ctrl->wait_acknowledge);
 
         const mtime_t max_deadline = mdate() + timeout;
+        const mtime_t wait_deadline = deadline <= VLC_TS_INVALID ? max_deadline : __MIN(deadline, max_deadline);
 
         /* Spurious wakeups are perfectly fine */
-        if (ctrl->can_sleep) {
-            if (deadline <= VLC_TS_INVALID)
-                vlc_cond_timedwait(&ctrl->wait_request, &ctrl->lock, max_deadline);
-            else
-                vlc_cond_timedwait(&ctrl->wait_request, &ctrl->lock, __MIN(deadline, max_deadline));
-        }
+        if (ctrl->can_sleep)
+            vlc_cond_timedwait(&ctrl->wait_request, &ctrl->lock, wait_deadline);
     }
 
     bool has_cmd;