[vlc-devel] [PATCH 4/4] vout: refactor deadline computation for cond_timedwait in vout_control_Pop
Felix Abecassis
felix.abecassis at gmail.com
Wed Feb 19 12:30:05 CET 2014
---
src/video_output/control.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/src/video_output/control.c b/src/video_output/control.c
index 7b4a19b..f317196 100644
--- a/src/video_output/control.c
+++ b/src/video_output/control.c
@@ -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;
--
1.8.3.2
More information about the vlc-devel
mailing list